|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre habitué
![]() Inscription : mars 2006 Messages : 293 ![]() |
Ce que l'on appel table scan est ce juste une monté en mémoire de toute la table ou juste des champs (quoi que l'on est pas sur sybase IQ ...) ?? Enfin bref quel est le fonctionnement réel d'un table scan et/ou index scan??
Merci pour cette question purement théorique... |
|
|
00
|
|
|
#2 |
![]() ![]() |
Un table scan veut dire que l'optimiseur va "scanner" l'ensemble de la table pour satisfaire à la requète. Il va donc lire toutes les lignes de la table pour voir si la ligne correspond à la clause WHERE. Si les pages de la tables sont déjà en cache alors il n'y aura pas d'IOs physiques. Un table scan est utilisé lorsqu'il n'y a pas d'indexe qui satisfasse à la clause WHERE, ou lorsque l'optimiseur juge que la clause WHERE va de toute façon obliger à lire la majeur partie de la table (clause WHERE pas assez selective).
Un index scan implique la même chose mais pour un index. L'index scan peut être utilisé par l'optimiseur dans le cas où toute l'information dans la clause WHERE peut être trouvée dans l'indexe, mais où le positionnement par la clé n'est pas possible. Un example typique est une recherche via LIKE avec un pattern du style "%nom" où le wild-card initial oblige de tester toutes les valeurs pour un match. Dans les deux cas il s'agit de méthodes d'accès qui sont à éviter, surtout si la table est grande! Michael
__________________
Michael Peppler Membre de TeamSybase - www.teamsybase.com "A successful [software] tool is one that was used to do something undreamed of by its author." -- S. C. Johnson |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : mars 2006 Messages : 293 ![]() |
Merci pour ta réponse.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com