par Dusan Petkovic et Christian Unterreitmeier - Mis en ligne le 09/07/2002 Des données faussées peuvent affecter le plan d'exécution des requêtes
contenant un prédicat et de celles
contenant une opération de jointure. Apprennez à tenir compte de la distorsion
des données pendant
la conception de la base de
données ...
Les colonnes d'une table représentent
généralement les propriétés d'entités
concrètes comme des noms d'employés
et de produits. Quand votre requête
contient un prédicat - une
clause WHERE contenant des critères
de recherche - incluant une colonne,
l'optimiseur de requêtes SQL Server
peut trouver les données correspondantes
à la requête de deux manières
différentes : balayage de table ou accès
par index. Dans un balayage de table,
l'optimiseur lit séquentiellement
toutes les lignes d'une table et compare
chacune d'elle aux critères de recherche
de la clause WHERE. SQL
Server décide en général de balayer
toute la table quand la requête sélectionne
un nombre significatif de lignes
de la table. L'optimiseur de requêtes
opte plutôt pour l'accès par index
quand un index de colonne (clustered
ou nonclustered) existe. Utiliser ou
non l'index existant dépend de nombreux
facteurs différents.
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.
Téléchargez cette ressource
Guide de Cyber-résilience pour Microsoft 365
La violation de votre tenant M365 va au-delà d’un simple incident de cybersécurité. Elle peut entraîner une interruption opérationnelle généralisée, des perturbations commerciales et une exposition de vos données sensibles. Découvrez les méthodes et technologies pour évaluer, comparer et renforcer votre posture de sécurité Microsoft 365.
Pour offrir les meilleures expériences, nous utilisons des technologies telles que les cookies pour stocker et/ou accéder aux informations des appareils. Le fait de consentir à ces technologies nous permettra de traiter des données telles que le comportement de navigation ou les ID uniques sur ce site. Le fait de ne pas consentir ou de retirer son consentement peut avoir un effet négatif sur certaines caractéristiques et fonctions.
Fonctionnel
Toujours activé
Le stockage ou l’accès technique est strictement nécessaire dans la finalité d’intérêt légitime de permettre l’utilisation d’un service spécifique explicitement demandé par l’abonné ou l’internaute, ou dans le seul but d’effectuer la transmission d’une communication sur un réseau de communications électroniques.
Préférences
Le stockage ou l’accès technique est nécessaire dans la finalité d’intérêt légitime de stocker des préférences qui ne sont pas demandées par l’abonné ou la personne utilisant le service.
Statistiques
Le stockage ou l’accès technique qui est utilisé exclusivement à des fins statistiques.Le stockage ou l’accès technique qui est utilisé exclusivement dans des finalités statistiques anonymes. En l’absence d’une assignation à comparaître, d’une conformité volontaire de la part de votre fournisseur d’accès à internet ou d’enregistrements supplémentaires provenant d’une tierce partie, les informations stockées ou extraites à cette seule fin ne peuvent généralement pas être utilisées pour vous identifier.
Marketing
Le stockage ou l’accès technique est nécessaire pour créer des profils d’internautes afin d’envoyer des publicités, ou pour suivre l’internaute sur un site web ou sur plusieurs sites web ayant des finalités marketing similaires.