Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - Datenbankadministration » Konfiguration Ihrer Datenbank » Datenbankoptionen » Einführung in Datenbankoptionen » Alphabetische Liste der Optionen

 

optimization_level-Option [Datenbank]

Steuert den Umfang des vom SQL Anywhere-Abfrageoptimierer getätigten Aufwands, um einen Zugriffplan für eine SQL-Anweisung zu finden.

Zulässige Werte

0-15

Standardwert

9

Bemerkungen

Die optimization_level-Option steuert die Menge des Aufwands, den der SQL Anywhere-Optimierer zur Optimierung von SQL-Datenmanipulationssprachen-Anweisungen (DML - Data Manipulation Language) einsetzt. Die Option steuert die maximale Anzahl von alternativen Join-Strategien, die der Optimierer bei jedem SELECT-Block berücksichtigt. Je höher die Einstellung von optimization_level ist, umso größer ist die maximale Anzahl von alternativen Join-Strategien, die der Optimierer berücksichtigt.

Wenn die Option auf "0" eingestellt ist, wählt der SQL Anywhere-Optimierer den ersten Zugriffsplan aus, der in Betracht kommt, wodurch alle Kosten-basierende Vergleiche von alternativen Plänen vermieden werden. Zusätzlich werden bei Stufe 0 einige semantische Optimierungen von verschachtelten Abfragen deaktiviert. Wenn diese Option auf einen höheren Wert als 0 eingestellt ist, evaluiert der Optimierer verschiedene Strategien und wählt jene mit den geringsten zu erwartenden Kosten aus. Wenn diese Option auf einen höheren Wert als der Standardwert (9) eingestellt ist, ist der Optimierer agressiver bei der Suche nach alternativen Strategien, was möglicherweise zu einem größeren Zeitaufwand während der Optimierungsphase führt.

In der Regel wird diese Option temporär auf niedrigere Stufen (0, 1 oder 2) gesetzt, wenn die Anwendung kürzere OPEN-Zeiten für eine DML-Anweisung benötigt. Es ist bekannt, dass auch bei komplexen Anweisungen die Ausführungszeit für die Abfrage sehr kurz sein kann und der vom Optimierer ausgewählte spezifische Zugriffsplan weniger wichtig ist. Es ist nicht empfehlenswert, einen anderen als den Standardwert für die PUBLIC-Einstellung von optimization_level zu verwenden.

Die Auswirkung der Einstellung der optimization_level-Option ist unabhängig von den Einstellungen der optimization_goal- und optimization_workload-Optionen.

Einfache DML-Anweisungen (Einzel-Block- und Einzel-Tabellen-Anweisungen, die Gleichheitsbedingungen in der WHERE-Klausel enthalten, die eine bestimmte Zeile eindeutig identifizieren) werden heuristisch optimiert und umgehen den Kosten-basierten Optimierer zur Gänze. Die Optimierung von einfachen DML-Anweisungen wird nicht durch die Einstellung der optimization_level-Option beeinflusst. Die Zählung der Anzahl von Anforderungen, die durch den Bypass-Mechanismus des Optimierers optimiert wurden, steht als die QueryBypassed-Verbindungseigenschaft zur Verfügung.

Weitere Hinweise zur QueryBypassed-Verbindungseigenschaft finden Sie im Abschnitt Verbindungseigenschaften.

Sie können temporäre oder öffentliche Einstellungen für diese Option in einzelnen INSERT-, UPDATE-, DELETE-, SELECT-, UNION-, EXCEPT- und INTERSECT-Anweisungen aufheben, indem Sie eine OPTION-Klausel in die Anweisung aufnehmen. Weitere Hinweise finden Sie unter: