Announcement

Collapse
No announcement yet.

Optimierung des Zeitverhalten vom Oracle-Server bei Abfragen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Optimierung des Zeitverhalten vom Oracle-Server bei Abfragen

    Welche Parameter eines Oracle-Servers kann man konfigurieren, ob ein optimales Zeitverhalten beim ausführen von SQL-Befehlen (z.B. Select) zu erhalten?

    Ich habe eine sehr große Datentabelle mit ca. 300.000 Datensätzen. Führe ich ein Select nach einer ID zum ersten mal aus, dauert diese Abfrage ca. 1 minute. Danach werden nachfolgende Abfragen nach andren ID's in sekundensache abgearbeitet. Ist es möglich dieses Zeitverhalten auch bei der erste Abfrage zu bekommen?

    Viele Grüße

    Dirk

  • #2
    Dieses Zeitverhalten tritt auch auf, wenn du unmittelbar hintereinander zwei mal die selbe SELECT-Anweisung ausführst.
    Beim ersten Mal müssen alle Datesätze der gewünschten Tabelle gelesen und entsprechend bearbeitet werden. Die entsprechenden Daten werden im SQL Buffer Pool (ein Speicherbereich der SGA) gespeichert. Wird die Anfrage ein zweites Mal abgesetzt, so wird erst im SQL Buffer Pool nachgeschaut, ob die Daten bereits dort vorliegen (Dies erfolgt natürlich auch schon beim ersten Mal, nur liegen die Daten zu diesem Zeitpunkt noch nicht vor.) Falls die Daten bereits vorliegen, können sie direkt ausgegeben werden, anderenfalls müssen sie erst, wie beim ersten Mal beschrieben, bereit gestellt werden.

    Je mehr Datensätze zu bearbeiten sind, desto deutlicher wird der Unterschied im Zeitverhalten sichtbar. Probier es mal aus.

    Gruß kuemmelche

    Comment


    • #3
      um select statements schneller abzuarbeiten, kann man folgende werte in der
      init$ORACLE_SID.ora ändern.

      sort_area_size = wert
      sort_area_retained_size = bis ca. 50% von sort_area_size

      parallel_max_servers = wert
      parallel_min_servers = wert < parallel_max_servers

      und was noch möglich ist, die tabelle cachen... ja nach größe
      parameter large_pool_size = wert gesetzt sein

      das einfachste ist ein index auf die tabelle legen, das wirkt wunder

      Comment

      Working...
      X