Zwei SQL zum sortierten Zeitstempeldatum
-
13-12-2019 - |
Frage
Ich habe 98W Zeilendaten.Wenn ich meine Daten mit Pub_Time sortieren möchte, habe ich ein Interesse gefunden.
Hier ist der SQL:
generasacodicetagpre.es kostet 19s.
generasacodicetagpre.es kostet 0,2s.
Ich möchte wissen, warum?
Lösung
Sie haben wahrscheinlich einen Index auf pub_time auf Ihrem Tisch.
Daher kann die zweite Abfrage diesen Index verwenden, um nur die Datensätze mit Nicht-Null-Daten nach dem angegebenen Datum zurückzugeben, während die erste Abfrage den gesamten Tisch abfragen muss.
Andere Tipps
Es gibt eine Reihe von Möglichkeiten. Sie könnten eine große Anzahl von Zeilen mit ungültigen / Nulldaten in pub_time herausfiltern, aber ich bezweifle, dass Sie keine wesentliche Anzahl von diesen nicht bemerken / erwähnen würden.
Die drei Dinge, die sich in meinem Kopf anhalten, sind:
1 - Sie haben einen Index- oder Composite-Index mit Pub_Time, und die Einschränkung in Ihrer WHERE-Klausel löst die Verwendung eines anderen Zugriffspfads
aus.
Die Gründe für die Gründe für dabei werden, wird schnell ein empirisches Venture - es ist schwer, mehr zu sagen, ohne Ihre Plattform & Version zu kennen. Aus dem Tag nehme ich an, dass Sie Oracle verwenden Weitere Informationen zum Oracle-Optimierer finden Sie in http://docs.oracle .com / cd / b10500_01 / server.920 / A96533 / optimpops.htm (dies ist für Oracle 9i v9.2, aber es hat eine anständige Erklärung der versionsunabhängigen Konzepte)