Legt fest, ob die Abfrageverarbeitung dahingehend optimiert wird, die erste Zeile schnell zurückzugeben, oder ob die Kosten für die Ausgabe der vollständigen Ergebnismenge minimiert werden sollen.
First-row, All-rows
All-rows
Mit der Option optimization_goal wird festgelegt, ob SQL Anywhere SQL-Anweisungen in Datenmanipulationssprache (DML - Data Manipulation Language) auf Antwortzeiten oder Ressourcenverbrauch optimiert.
Wenn die Option auf "All-rows" (Standardwert) gesetzt ist, optimiert SQL Anywhere eine Abfrage, indem ein Zugriffsplan mit der geschätzten Mindestabrufzeit benutzt wird. optimization_goal auf "All-rows" ist in der Regel für Anwendungen sinnvoll, die die komplette Ergebnismenge verarbeiten sollen, wie z.B. die PowerBuilder DataWindow-Anwendung. Die Einstellung "All-rows" ist auch für unempfindliche Cursor (ODBC-statisch) geeignet, da die komplette Ergebnismenge beim Öffnen des Cursors initialisiert wird. Außerdem ist die Einstellung auch für abrollende Cursor (ODBC-Keyset-gesteuert) geeignet, weil der Zweck eines solchen Cursors darin besteht, das Scrollen durch die Ergebnismenge zu ermöglichen.
Wenn die Option auf First-row gesetzt ist, wählt SQL Anywhere einen Zugriffsplan, der die Zeitspanne zum Abruf der ersten Zeile der Ergebnismenge reduzieren soll, worunter möglicherweise die Gesamtabrufzeit leidet. Insbesondere wird der SQL Anywhere-Optimierer in der Regel Zugriffspläne vermeiden, die die Materialisierung von Ergebnissen erfordert, um die Zeitspanne zur Darstellung der ersten Zeile zu verkürzen. Mit dieser Einstellung bevorzugt der Optimierer Zugriffspläne, die für die ORDER BY-Klausel einer Abfrage einen Index benutzen, anstelle von Zugriffsplänen, die einen expliziten Sortiervorgang benötigen.
Sie können den Tabellen-Hint FASTFIRSTROW in der FROM-Klausel einer Abfrage verwenden, um das Optimierungsziel für eine bestimmte Abfrage auf "First-row" zu setzen, ohne die Einstellung von optimization_goal ändern zu müssen.
Weitere Hinweise zum Tabellen-Hint FASTFIRSTROW finden Sie unter FROM-Klausel.
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:
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |