Si l’optimiseur de requêtes doit
choisir le mode d’accès à une colonne
contenant des valeurs non uniques, la
distribution de valeurs distinctes pour
la colonne au travers des lignes d’une
table devient un facteur important.
Supposons que votre entreprise stocke
tous les noms de clients dans la table
customers, incluant deux clients nommés
gender et country. Supposons
également que l’entreprise soit principalement
implantée en Amérique du
Nord et que la colonne country ait 10
valeurs distinctes. Si 70 % des clients
habitent aux Etats-Unis, 10 % au
Canada, 5 % au Mexique et 0,05 % en
Allemagne, les valeurs distinctes dans
la colonne country ne sont pas distribuées
uniformément sur les lignes de
la table customers. Dans cet exemple,
les données de la colonne country sont
faussées parce que les valeurs de cette
colonne (Etats-Unis, Canada, Mexique,
Allemagne, etc.) apparaissent dans les
lignes de la table customers avec des
fréquences très différentes. A l’inverse,
la colonne gender contient à peu près
le même nombre d’hommes et de
femmes, donc les données de cette colonne
ne sont pas faussées. Voyons des
instructions SELECT différentes pour
voir comment l’optimiseur de requêtes
choisit de sélectionner le jeu de
résultats dans des situations différentes
dans lesquelles la colonne de
données faussées se trouve dans le
prédicat WHERE. Au préalable, il faut
écrire une instruction T-SQL qui crée la
table customers, illustrée dans le
listing 1. Vous pourrez ensuite utiliser
le batch que le listing 2 montre
pour charger 10.000 lignes dans cette
table.
Le sous-titrage n'est plus une option mais un levier de croissance : 80 % des vidéos sur les réseaux sociaux sont consommées sans le son. Pourtant, choisir entre le format…
Passez à la cybersécurité proactive, transformez la collecte et l’analyse des logs en un bouclier dynamique contre les cybermenaces. Découvrez comment mettre en place une approche SIEM modulaire, évolutive et…