Vues indexées SQL Server

Vues indexées SQL Server

Une vue dans SQL Server fait référence à une requête stockée dans un catalogue de base de données pour référence future. Les vues SQL Server agissent comme des tables virtuelles qui ne détiennent pas de données réelles par elles-mêmes. Au lieu de cela, ils stockent un ensemble de requêtes que vous pouvez exécuter sur une table ou d'autres objets de base de données.

Ce guide apprendra à travailler des vues SQL Server et des vues indexées.

Vues SQL Server: les bases

Avant de discuter de la façon de travailler avec des vues indexées, apprenons les bases de la création d'une vue.

Supposons que vous ayez une instruction sélectionnée qui renvoie un ensemble de résultats. Par exemple:

Utiliser SalesDB;
Sélectionnez le top 10 * dans les ventes où la quantité = 1000;

L'exemple de requête ci-dessus renvoie les enregistrements où la quantité est égale à 1000. Si nous voulons utiliser la même requête et obtenir un ensemble de résultats similaire, nous pouvons l'enregistrer dans un .Fichier SQL et le redémarrer en cas de besoin.

Une meilleure façon de le faire est de créer une vue tenant la requête ci-dessus. Par exemple, nous pouvons créer une vue appelée ci-dessus_thle comme indiqué dans la requête ci-dessous:

Utiliser SalesDB;
ALLER
Créez une vue TOP_THILLS comme sélectionné * à partir des ventes où la quantité> 1000;

Une fois que nous avons la requête comme vue, nous pouvons le réutiliser comme:


ALLER
SELECT * FROM TOP_THILLS;

La requête doit renvoyer l'ensemble de résultats comme:

Dans SQL Server Management Studio, vous pouvez afficher les vues stockées dans un tableau en naviguant vers:

Bases de données -> Votre base de données cible -> Tables -> Vues

Il existe diverses raisons d'utiliser des vues dans SQL Server. Cependant, les principaux incluent la sécurité et la cohérence.

Pour supprimer une vue d'un tableau, vous pouvez utiliser la requête de suppression de suppression comme indiqué:

Déposez la vue si existe TOP_THILLS;

Vues indexées SQL Server

Comme mentionné, une vue normale de serveur SQL ne contient pas de données par elle-même. Il contient un ensemble de requêtes qui produisent un ensemble de résultats spécifique. Cela aide à assurer la sécurité et la cohérence. Cependant, une vue ne fournit aucune amélioration des performances sur l'ensemble de résultats.

C'est là que les vues indexées entrent en jeu.

Les vues indexées sont comme une table de base de données normale car ils peuvent stocker les données physiquement. Cela peut être un excellent outil qui peut aider à améliorer les performances d'une requête.

Discutons de la création de travail avec des vues indexées dans SQL Server.

Comment créer une vue indexée?

Il y a deux étapes de clé lors de la création d'une vue indexée dans SQL Server:

  1. Créer une vue avec un paramètre de liaison au schéma.
  2. Ensuite, créez un index en cluster sur la vue pour la matérialiser.

Prenons un exemple pour comprendre comment utiliser une vue indexée.

Considérez l'exemple de requête ci-dessous qui a créé une vue indexée sur le tableau des ventes.

Créer des ventes de vue.Salesid, ventes.ProductId, ventes.CustomerId de DBO.Ventes où la quantité> 1000;
ALLER

Vous remarquerez quelques choses différentes d'une vue typique. Tout d'abord, nous incluons l'option avec Schemabindig.

Cette option garantit que vous ne pouvez pas modifier la structure des tables dans un format qui affecte la vue matérialisée sous-jacente à moins que vous ne dépassiez la vue existante.

Deuxièmement, la dénomination comprend un format en deux parties. SQL Server vous oblige à définir le schéma.objet lors de la création d'une vue indexée (dans la même base de données).

INDICE: N'oubliez pas que SQL Server mettra à jour les modifications appliquées aux tables sous-jacentes à la vue indexée. Cela conduit à écrire des frais généraux pour les tables référencées.

Une fois la vue créée, nous devons créer un index en cluster. Nous pouvons créer un index comme:

Créer un index unique en cluster my_index sur dbo.Sales_indexed (SalesID);

La requête ci-dessus doit créer un index en cluster sur la vue. Sur SSMS, vous pouvez afficher l'index en cluster comme:

Une fois que nous avons l'index en cluster, nous pouvons interroger les données comme:

Sélectionner * dans DBO.Sales_indexed;

SQL Server utilise la vue Sales_indexed au lieu de remettre en question les tables réelles.

Conclusion

Dans cet article, vous avez appris à créer et à utiliser des vues indexées dans SQL Server, vous permettant de créer une vue matérialisée.