Schnellste Validierungsabfrage in PostgreSQL

8

Was ist die schnellste Abfrage in PostgreSQL, die ich als Validierungsabfrage verwenden kann, um eine JNDI-Ressource zu binden?

Ich denke, das SELECT 1ist das einfachste, aber in diesem Dokument heißt es, dass wir in PostgreSQL verwenden sollten select version(). Das ist mir nicht klar.

Ich habe versucht zu vergleichen EXPLAIN ANALYZE SELECT 1und EXPLAIN ANALYZE SELECT VERSION()kann immer noch nicht erkennen, warum der zweite schneller ist (oder sein sollte).

shabunc
quelle

Antworten:

10

Das ist offensichtlich Unsinn. SELECT 1ist schneller (wenn auch nur um ein kleines bisschen). version()gibt in meinem Fall auch einige Textbytes zurück:

PostgreSQL 9.1.2 on x86_64-unknown-linux-gnu, compiled by gcc-4.4.real (Debian 4.4.5-8) 4.4.5, 64-bit

So erhalten Sie auch zusätzliche E / A.
pgAdmin wird beispielsweise SELECT 1als Validierungsabfrage verwendet.

Erwin Brandstetter
quelle
1

JIRA untersucht die Datenbankversion beim Herstellen einer Verbindung, um herauszufinden, wie das Escapezeichen von Zeichenfolgen behandelt werden soll. Dies hat sich in späteren Versionen der Datenbank geändert. Das ist der Hauptgrund, warum ich weiß, dass sie die längere, langsamere Versionsprüfung anstelle eines einfacheren SELECT verwenden. Möglicherweise ist dort auch anderer versionenspezifischer Code enthalten.

Greg Smith
quelle