web-dev-qa-db-fra.com

Query de validation la plus rapide dans PostgreSQL

Quelle est la requête la plus rapide de PostgreSQL, que je peux utiliser comme validationQuisery contraignant une ressource JNDI?

Je pense que cela SELECT 1 Est le document le plus simple, mais dans this , il est dit qu'en PostgreSQL, nous devons utiliser select version(). Ce n'est pas évident pour moi.

J'ai essayé de comparer EXPLAIN ANALYZE SELECT 1 Et EXPLAIN ANALYZE SELECT VERSION() et je ne vois toujours pas pourquoi la seconde est (ou devrait être) plus rapide.

8
shabunc

Ceci est évidemment absurdité. SELECT 1 Est plus rapide (si seulement par un petit bit). version() retourne également quelques octets de texte, dans mon cas:

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

Donc, vous obtenez également des E/S supplémentaires.
Pgadmin, par exemple, utilise SELECT 1 comme requête de validation.

10
Erwin Brandstetter

Jira regarde la version de la base de données lors de la connexion à la découverte de choses comme comment il devrait gérer l'échappement des chaînes , quelque chose qui a changé dans des versions ultérieures de la base de données. C'est la raison principale que je connaisse qu'ils utilisent la vérification de version plus longue et plus lente au lieu d'une sélection plus simple. Il peut y avoir autre code spécifique à une autre version là-bas.

1
Greg Smith