Zum Inhalt springen

Verbesserung der Performanz dieses Statements


Fenixxus

Empfohlene Beiträge

Hi zusammen,

ich habe folgendes Statement, wo ich aber nicht weiß, ob man das noch weiter optimieren kann. Der Zweck ist es die Zeile der Tabelle auszugeben, die die höchste ID hat:

SELECT * FROM MeineTabelle t WHERE t.id = (SELECT MAX(t.id) FROM MeineTabelle) ORDER BY t.id DESC LIMIT 1

Ist da noch Performancepotenzial?

Gruß

Fenixxus

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi zusammen,

ich habe folgendes Statement, wo ich aber nicht weiß, ob man das noch weiter optimieren kann. Der Zweck ist es die Zeile der Tabelle auszugeben, die die höchste ID hat:

SELECT * FROM MeineTabelle t WHERE t.id = (SELECT MAX(t.id) FROM MeineTabelle) ORDER BY t.id DESC LIMIT 1

Ist da noch Performancepotenzial?

Gruß

Fenixxus

- das ORDER BY sowie das LIMITsolltest du dir sparen können, vorausgesetzt deine id ist ein PK oder zumindest Unique

- Ich nehme im weiteren an, dass du auf diesem Attribut eine Index gesetzt hast

Gruss

Link zu diesem Kommentar
Auf anderen Seiten teilen

Sofern auf ID ein Index liegt, und ID wie der Name schon sagt eindeutig ist, sollte das auch bei Milliarden von Datensätzen eine Sache von ms sein(*).

Für die maximale ID muss die DB einfach nur den letzten Eintrag im Index lesen (also auf dem Block ganz rechts), und anschließend mit diesem Wert nochmal auf den Index zugreifen, daraus die Zeile in der Tabelle ermitteln und diese zurückgeben.

Ist die ID eindeutig, kannst Dir das LIMIT sparen. ORDER BY kannst auf jeden Fall weglassen, da alle ID Spalten ja den gleichen Wert haben.

Dim

(*) Hab das grade mal bei einer 220 Mio Zeilen Tabelle in Oracle probiert: 94ms beim ersten, 47ms beim zweiten Aufruf.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...