|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() |
Bonjour,
voila j'ai une question simple : Est-ce que les curseurs prennent en compte les index dans leurs exécutions ou bien font-ils des scans simples de la table par défaut ? j'ai eu l'occasion ces derniers jours de mesurer le temps d'exécution d'un curseur C1 défini comme suit : Code :
Code :
J’ai d'abord mesuré le temps d'exécution de mon programme écrit en ECPG sans index sur le champ pop, puis avec un index de type b-tree. À mon grand étonnement, j'ai eu les mêmes temps d'exécution. J’ai bien vérifié que l'index est pris en compte pour la requête définissant le curseur(SELECT id_ville, ...). Et pourtant, le curseur s'obstine à faire des scans séquentiels malgré l'existence de l'index. J’ai cherché sur internet des explications, mais rien n'ai fait. merci d'avance. |
||||
|
|
00
|
|
|
#2 | ||||||
|
Membre du Club
![]() |
re,
j'ai passé mon curseur sous la moulinette et j'ai pue comprendre un peu (mais pas tout). j'ai d'abord pris la déclaration de mon curseur et l'ai fais passer sous la commande EXPLAIN. mon curseur est définit comme suis (j'ai rajouté un critere par rapport à mon dernier poste): Code :
Code :
Code :
pourquoi quand un index peut accélérer le temps de réponse de la requête le définissant est utilisé quand cette dernière est utilisé en dehors d'un curseur et non avec un curseur. !!! |
||||||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com