|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Est-ce que quelqu'un peut me certifier ce que j'ai affirmé à savoir que sur une table telle que celle Code :
Code :
Soazig |
||||
|
|
00
|
|
|
#2 | ||
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 668 ![]() |
Bonjour,
Effectivement l'index sur la colonne etat ne sera pas utilisé. En effet SQL Server stocke les statistiques de distribution des valeurs dans cette colonne, pas les statistiques sur un calcul binaire. En revanche vous pouvez ajouter une colonne calculée qui vous donne le AND et le OR binaire sur les valeurs stockées dans la colonne etat, et indexer celle(s)-ci. Dans ce cas vous pourrez écrire : Code :
Pour savoir si un index est utilisé, il suffit de regarder le plan d'exécution réel (CTRL + M) dans Management Studio @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
||
|
00
|
|
|
#3 | ||
|
Membre expérimenté
![]() Inscription : octobre 2002 Messages : 654 ![]() |
Bonjour,
Je ne comprend pas Citation:
L'idée est de faire une recherche sur 15 ou 50 critères en combinant les possibilités. Pour l'instant nous n'avons pas le nombre de critères possible. Il a été évoqué le champ de bit en varbinary. @bitMasque peut également valoir 33 ou 25. Quand à Citation:
J'ai donc exprimé mon idée que sur une grosse volumétrie, cette solution ne fonctionnerait pas car l'index ne serait pas utilisé. Et je voulais m'assurer de ne pas avoir dit de bêtise. Cordialement Soazig |
||
|
|
00
|
|
|
#4 | |
![]() ![]() ![]() Nicolas SouquetAdministrateur de base de données Inscription : janvier 2005 Messages : 4 668 ![]() |
Citation:
Dans ce cas, il vaudrait peut-être mieux créer une table que je qualifierai d'annexe. Elle aurait 3 colonnes : - l'identifiant référencé par clé étrangère de la table fides_tdb_venues - le type de bitwise (OR_33, AND_22), qui serait en fait un identifiant référencé par clé étrangère d'une autre table contenant tout les types de bitwise - la valeur du bitwise Au moment de l'insertion dans la table fides_tdb_venues, vous calculez tous les bitwise pour la valeur insérée, et vous insérez toutes les valeurs calculées dans cette nouvelle table. Le tout bien indexé @++
__________________
En bases de données relationnelles SQL, il n'y a ni tableaux, ni enregistrements, ni champs: il y a des tables, des lignes et des colonnes. Blog | Profil| Consulter ou télécharger les fichiers d'aide de SQL Server, des versions 2000 à 2012 |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com