Der Optimierer kann für jedes Prädikat alle folgenden Quellen für Selektivitätsschätzungen verwenden. Die gewählte Quelle wird im grafischen und im ausführlichen Plan für die Abfrage angezeigt.
Statistiken Der Optimierer kann mithilfe von gespeicherten Spaltenstatistiken Selektivitätsschätzungen berechnen. Wenn Konstanten im Prädikat verwendet werden, sind die gespeicherten statistischen Daten nur verfügbar, wenn die Selektivität einer Konstante eine Zahl mit ausreichender Signifikanz ist, die in den Statistiken gespeichert wird.
Beispiel: Das Prädikat EmployeeID > 100
kann Spaltenstatistiken als Quelle für die Selektivitätsschätzung verwenden, wenn die Statistik für die Spalte "EmployeeID"
vorhanden ist.
Join
Der Optimierer kann Integritätsregeln zur Erhaltung der referenziellen Integrität, Eindeutigkeits-Integritätsregeln
oder Join-Histogramme zum Berechnen von Selektivitätsschätzungen verwenden. Join-Histogramme werden für ein Prädikat der Form
T.X=R.X
aus den verfügbaren statistischen Daten der Spalten "T.X" und "R.X" berechnet.
Spalte-Spalte Wenn einem Join keine Integritätsregeln zur Erhaltung der referenziellen Integrität, Eindeutigkeits-Integritätsregeln oder Join-Histogramme als Selektivitätsquellen zur Verfügung stehen, kann der Optimierer die geschätzte Anzahl von Zeilen in der Join-Ergebnismenge dividiert durch die Anzahl der Zeilen im kartesischen Produkt der beiden Tabellen verwenden.
Spalte Der Optimierer kann den Durchschnitt aller in der Spaltenstatistiken gespeicherten Werte verwenden.
Beispiel: Die Selektivität des Prädikats DepartmentName = Ausdruck
kann unter Verwendung des Durchschnitts berechnet werden, wenn Ausdruck keine Konstante ist.
Index Der Optimierer kann Indizes zum Berechnen von Selektivitätsschätzungen untersuchen. Im Allgemeinen wird ein Index für Selektivitätsschätzungen verwendet, wenn keine anderen Quellen von Selektivitätsschätzungen, wie zum Beispiel Spaltenstatistiken, benutzt werden können.
Für das Prädikat DepartmentName = 'Sales'
kann der Optimierer z.B. einen Index benutzen, der für die Spalte "DepartmentName" definiert wurde, um die Anzahl der Zeilen
mit dem Wert "Sales" zu schätzen.
Benutzer Der Optimierer kann vom Benutzer bereitgestellte Selektivitätsschätzungen verwenden, vorausgesetzt die user_estimates-Datenbankoption ist nicht auf "Disabled" gesetzt.
Annahme Der Optimierer kann die beste Annahme für die Berechnung von Selektivitätsschätzungen heranziehen, wenn kein relevanter Index benutzt werden kann, keine Statistiken für die referenzierten Spalten gesammelt wurden oder das Prädikat ein komplexes Prädikat ist. In diesem Fall werden systemeigene Näherungsannahmen für jeden Typ von Prädikat definiert.
Berechnet Beispiel: Für ein sehr komplexes Prädikat wurde die Selektivitätsschätzung auf 100 % und die Selektivitätsquelle auf "Berechnet" festgelegt, als die Selektivitätsschätzung berechnet wurde, zum Beispiel durch Multiplikation oder Addition der Selektivität.
Immer
Wenn ein Prädikat immer TRUE ist, ist die Selektivitätsquelle "Immer". Das Prädikat 1=1
ist z.B. immer TRUE.
Kombiniert Wenn die Selektivitätsschätzung durch die Kombination mehrerer der oben genannten Quellen berechnet wird, ist die Selektivitätsquelle "Kombiniert".
Beschränkt Wenn SQL Anywhere eine obere bzw. untere Grenze für die Selektivitätsschätzung festgelegt hat, ist die Selektivitätsquelle "Beschränkt". Beispiel: Grenzwerte sollen sicherstellen, dass eine Schätzung nicht höher als 100 % liegt oder dass die Selektivität nicht weniger als 0 % beträgt.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |