Frage

Sprich ich habe eine Tabelle X mit 100 Datensätzen in es und dass eine select * from X läuft dauert 100 Sekunden.

Wie lange soll ich erwarten, dass die Abfrage select top 10 * from X nehmen?

Ich würde erwarten, dass die Beziehung mehr oder weniger linear so 10 Sekunden. Ist das richtig, oder ist die Beziehung nicht-linear in irgendeiner Weise?

War es hilfreich?

Lösung

Ihre Leistungskosten sind in zwei unterschiedlichen Bereichen:

  • Wie lange dauert es um die Abfrage durchführen
  • Wie lange es dauert, die Ergebnisse zurück

Oft wird eine Abfrage schnell sein, aber welche Ergebnisse werden langsam sein, da es I / O-gebunden. Wenn dies der Fall ist, dann werden Sie eine annähernd lineare Beschleunigung sehen von weniger Ergebnissen zurück.

Wenn jedoch die Abfrage selbst kompliziert ist, sind die Dinge anders. Wenn es nicht gerade ist select * from X, aber select * from X where [complicated-expression], dann können die Ergebnisse stark zwischen den Datenbank-Implementierungen variieren. In diesem Fall könnte Ihre Leistung durch Abfrage Komplexität beherrscht werden, in dem Fall, dass Sie nicht so viel Nutzen, indem lediglich der Rückkehr weniger Ergebnisse sehen werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top