[SQL] "Arrêter prématurément" une requête

"Arrêter prématurément" une requête [SQL] - SQL/NoSQL - Programmation

Marsh Posté le 16-12-2010 à 11:18:16    

Bonjour,  
 
J'explique un mon problème via un cas-type. J'ai une table avec de nombreux enregistrements. Afin de réaliser un jeu de données, je cherche un enregistrement dans cette table qui répond à un filtre prédéfini.
 
Cependant, j'aimerai ne retourner qu'un seul enregistrement de ce type. ( TOP, ROWID le font OK) Mais mieux, j'aimerai que la requête SQL s'arrête de tourner dès qu'un enregistrement est trouvé et donc avoir des temps de réponses plus court.
 
Est ce possible en SQL ? Sinon, une petite idée en PL/SQL ?

Reply

Marsh Posté le 16-12-2010 à 11:18:16   

Reply

Marsh Posté le 16-12-2010 à 11:21:41    

c'est ce que fait top, non ?

Reply

Marsh Posté le 16-12-2010 à 11:24:51    

TOP scan toute la table je pense et te file ensuite le TOP. Justement je voudrais eviter le fullscan.

Reply

Marsh Posté le 16-12-2010 à 11:26:27    

non si c est évitable suivant tes index et tes critères de tri  
mais si tu as un doute, tu peux regarder le plan d'execution de la requête

Reply

Marsh Posté le 16-12-2010 à 12:09:54    

Ca aurait été bien de préciser que c'est du oracle plutôt que de le deviner et avant que quelqu'un ne propose "LIMIT 1" [:joce]


Message édité par smaragdus le 16-12-2010 à 12:10:15
Reply

Marsh Posté le 17-12-2010 à 00:45:56    

Si je parle de TOP il est clair que c'est Oracle non?

Reply

Marsh Posté le 17-12-2010 à 09:22:01    

non, ca existe sous sql server...

Reply

Marsh Posté le 17-12-2010 à 10:48:46    

C'est le problème relationnel (pun intended) des DBA : ils sont persuadés chacun dans leur coin qu'ils sont les seuls à parler le "vrai" SQL [:joce]

Reply

Marsh Posté le 17-12-2010 à 13:53:13    

non ca c'est la vision des développeurs qui bossent sur un SGBD et qui croient que tous les autres bossent exclusivement dessus également

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed