Heim > Datenbank > MySQL-Tutorial > Warum verwendet meine Oracle 11g-Abfrage nicht mehrere CPUs?

Warum verwendet meine Oracle 11g-Abfrage nicht mehrere CPUs?

Susan Sarandon
Freigeben: 2024-12-30 19:41:11
Original
831 Leute haben es durchsucht

Why Isn't My Oracle 11g Query Using Multiple CPUs?

Untersuchung der Grenzen paralleler Oracle 11g-Abfragen

Bezüglich Ihres Problems, dass Oracle 11g nicht mehrere CPUs für eine bestimmte SQL-Abfrage nutzt, ist es wichtig, es zu verstehen die Feinheiten der Oracle-Parallelität. Um dies zu optimieren, sind umfassende Kenntnisse und eine sorgfältige Analyse verschiedener Faktoren erforderlich.

Richtige Untersuchung

Berücksichtigen Sie bei der Fehlerbehebung bei Parallelität die folgenden Fragen:

  1. Wie viele parallele Server wurden angefordert?
  2. Wie viele parallele Server wurden zugewiesen?
  3. Wie viele Parallele Server wurden effektiv genutzt?

Effektive Tools

  • SQL-Überwachung mit aktiven Berichten: Bietet detaillierte Informationen zu jeder Ausführung Schritt, der die Parallelitätsnutzung und mögliche Engpässe aufdeckt.
  • Erklären Sie den Plan für ... und wählen Sie * aus table(dbms_xplan.display);: Analysiert den Abfrageplan und enthält Hinweise, die erklären, warum Parallelität möglicherweise nicht angewendet wurde.

Faktoren, die die Parallelität beeinflussen

Zahlreiche Faktoren bestimmen die Anzahl der zugewiesenen parallelen Server, darunter:

  • Interoperation Parallelität (z. B. Sortieren, Gruppieren)
  • Abfragehinweise
  • Rekursives SQL
  • Sitzungsparameter ändern
  • Tabellen- und Indexgrad
  • Optimierer Kostenüberlegungen
  • Planverwaltung Mechanismen
  • Oracle Edition und Lizenzierung
  • Systemparameter (z. B. PARALLEL_ADAPTIVE_MULTI_USER, PARALLEL_DEGREE_LIMIT)
  • CPU-Anzahl und Systemlast
  • Parallele DML-Einschränkungen
  • Bugs und Parsing-Probleme

Methoden zur Fehlerbehebung

Um Ihre spezifische Abfrage zu beheben, versuchen Sie Folgendes:

  • Überprüfen Sie die Erklärung Planhinweise: Suchen Sie nach Gründen, warum es keine Parallelität gab angefordert.
  • SQL-Überwachungsberichte analysieren: Identifizieren Sie langsame Schritte und Parallelitätsnutzung.
  • Systemparameter anpassen: Erwägen Sie die Änderung von Parametern wie PARALLEL_DEGREE_LIMIT und PARALLEL_MIN_SERVERS.
  • Parallel aktivieren Hinweise: Fordern Sie Parallelität explizit mit Hinweisen auf Anweisungs- oder Objektebene an.
  • Nicht-parallele Objekte ausschließen: Verwenden Sie nicht-parallele Hinweise auf Objektebene, um die serielle Ausführung für bestimmte Tabellen zu erzwingen.
  • Parallele DML-Einschränkungen überprüfen: Stellen Sie sicher, dass Ihre Abfrage dies nicht tut gegen eine der Einschränkungen für paralleles DML verstoßen.

Denken Sie daran, dass Parallelität eine nuancierte Funktion ist und für eine effektive Optimierung gründliche Untersuchung und Verständnis erfordert.

Das obige ist der detaillierte Inhalt vonWarum verwendet meine Oracle 11g-Abfrage nicht mehrere CPUs?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage