Créer un index SQL Server avec un script

Créer un index SQL Server avec un script pour améliorer les performances des requêtes sur les tables et les vues cluster.

Tutoriel pour créer un index SQL Server de type cluster. En effet, 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 contituent la première étape recommandée pour l’optimisation des performances en bases de données.

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.

1. Les index cluster SQL Server

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.

2. 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

3. Ajouter un index non cluster à la table des ventes

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 avec un script depuis SSMS
Créer un index SQL Server avec un script depuis SSMS

4. Vérifier l’index SQL Server sur la table depuis 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

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 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 le tutoriel à télécharger au format PDF.

Voici ci-dessous un autre tutoriel sur le langage T-SQL avec la requête PIVOT SQL Server pour transformer les lignes d’une table en colonne.

Autres tutoriels sur les index SQL Server

Soyez le premier à commenter

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée.


*