Créer un index avec SQL Server

Créer un index dans SQL Server pour améliorer les performances des requêtes sur les tables et aussi dans les vues cluster. Il existe deux types d’index, l’index cluster et l’index non cluster. Pour ajouter un index non cluster à une table, utiliser cet exemple et adapter-le aux besoins du projet. Les index non cluster SQL Server sont la première étape recommandée pour l’optimisation des performances en bases de données.

Expliquons le contexte de l’exemple. Tout d’abord, c’est un exemple basique pour montrer la commande T-SQL CREATE INDEX et comment il est relativement simple d’optimiser les performances.

Deuxièmement, les deux colonnes indexées sont les colonnes typiques utilisées dans l’exécution de grandes requêtes, c’est-à-dire l’année et le mois. Une autre colonne très courante est la date.

Créer un index SQL Server avec un script (CREATE INDEX)

Tout d’abord, la première section explique comment créer un index sur une table des ventes crée avec SQL Server.

Pourquoi les très grandes tables, comme les ventes, ont besoin de colonnes indexées liées à la date ?

Prenons l’exemple d’une entreprise ou d’une organisation. Les responsables ont besoin de voir les chiffres dans un contexte précis pour savoir si les ventes sont bonnes.

Pour cela, le temps est la principale dimension en business intelligence parce que les comparaisons temporelles sont les plus courantes. Et parce que les responsables financiers des entreprises utilisent l’année fiscale comme référence.

Les vues les plus populaires sont les vues annuelles, trimestrielles, mensuelles et quotidiennes. Et comme les données évoluent le long de l’année fiscale, les index évoluent et suivent la date.

Etape 1 : Créer la table des ventes à indexer avec SQL Server

Par exemple, les tables de ventes ont cette structure initiale. Utilisez le code SQL suivant pour créer la table des ventes comme exemple pour la création de l’index.

CREATE TABLE [dbo].[SALES]
(
	[Year] TINYINT,
	[MonthName] NVARCHAR(50),
	[MonthCurrent] BIT,
	[NumberMonth] TINYINT,
	[EmployeeNumber] SMALLINT,
	[NumberOfClients] INTEGER,
	[NumberOfSales] BIGINT,
	[Amount_ET] NUMERIC(15,5),
	[Amount_IT] DECIMAL(15,5)
);
Créer une table des ventes pour y ajouter un index non cluster.
Créer une table des ventes avec SQL Server

Etape 2 : Ajouter un index non cluster à la table des ventes (Sales)

Enfin, considérons que sur notre système d’analyse les colonnes principales utilisées pour filtrer les données. Il s’agit de l’année et du nom du mois : Year et MonthName en Anglais.

CREATE INDEX indexYearMonth
ON [dbo].[SALES] ([Year], [MonthName]);
Créer un index SQL Server pour la table des ventes basé sur les colonnes mois et années.
Créer un index SQL Server

Étape 3 : Vérifier la présence de l’index sur la table avec SSMS

Développez les propriétés de la table des ventes et vérifiez la présence de l’index.

Noter que par défaut l’index est un index non-unique et non-cluster.

Vérifier la présence et le type d'un index SQL Server avec SSMS. Depuis l'instance, sélectionner la base de données puis la table et sous Indexes vérifier l'index, ici de type Non-Unique, Non-Clustered.
Vérifier un index SQL Server avec SSMS

Notes :

  • Utilisez une table existante pour créer l’index ou créer une nouvelle table qui doit être indexée.
  • Utilisez le logiciel gratuit de Microsoft SQL Server Management Studio (SSMS) pour effectuer les différentes comme exécuter les requêtes.

En outre, réutiliser les exemples T-SQL ci-dessus. Le code est prêt à être copié et collé, il suffit donc de l’adapter et de l’exécuter dans l’ éditeur gratuit de de requête SQL Server Management Studio (SSMS).

En effet, toute requête utilisant l’année et le mois dans la clause where utilise l’index nouvellement créé. En d’autres termes, l’index indexYearMonth améliore les performances de la requête. La maintenance des index, comme les commandes reorganize et rebuild, permet de les maintenir efficaces.

Pour aller plus loin, l’étape suivante consiste à analyser et reconstruire l’index afin d’organiser les valeurs dans l’index et les statistiques.

Il est également disponible ci-dessous pour le téléchargement et la lecture hors ligne. Voici donc le tutoriel Microsoft SQL Server en Français pour créer un index SQL Server au format PDF.

Voici ci-dessous un autre tutoriel de la série T-SQL sur la requête PIVOT SQL Server pour transformer les lignes d’une table en colonne.

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*