SQL Server indizierte Ansichten

SQL Server indizierte Ansichten

Eine Ansicht in SQL Server bezieht sich auf eine Abfrage, die in einem Datenbankkatalog als zukünftige Referenz gespeichert ist. SQL Server -Ansichten fungieren als virtuelle Tabellen, die keine tatsächlichen Daten selbst enthalten. Stattdessen speichern sie eine Reihe von Abfragen, die Sie auf einer Tabelle oder anderen Datenbankobjekten ausführen können.

In diesem Handbuch wird er erfahren, wie Sie SQL Server -Ansichten und indizierte Ansichten bearbeiten.

SQL Server -Ansichten: Die Grundlagen

Bevor wir diskutieren, wie man mit indizierten Ansichten arbeitet, lassen Sie uns die Grundlagen des Erstellens einer Ansicht lernen.

Angenommen, Sie haben eine ausgewählte Anweisung, die ein Ergebnissatz zurückgibt. Zum Beispiel:

Salesdb verwenden;
Wählen Sie Top 10 * aus dem Verkauf, wobei Quantity = 1000;

Die obige Beispielabfrage gibt die Datensätze zurück, in denen die Menge 1000 entspricht. Wenn wir dieselbe Abfrage verwenden und ein ähnliches Ergebnissatz erhalten möchten, können wir sie in a speichern .SQL-Datei und bei Bedarf erneut ausführen.

Eine bessere Möglichkeit, dies zu tun, besteht darin, eine Ansicht zu erstellen, die die obige Abfrage hält. Zum Beispiel können wir eine Ansicht erstellen, die als ober_tausend mit dem Namen in der unten gezeigten Abfrage gezeigt wird:

Salesdb verwenden;
GEHEN
Erstellen Sie Ansicht top_tausende als ausgewählte * aus Verkäufen, wobei die Menge> 1000;

Sobald wir die Anfrage als Ansicht haben, können wir sie wiederverwenden als:


GEHEN
Wählen Sie * aus top_tausenden;

Die Abfrage sollte das Ergebnis gesetzt wie:

In SQL Server Management Studio können Sie die gespeicherten Ansichten in einer Tabelle anzeigen, indem Sie navigieren zu:

Datenbanken -> Ihre Zieldatenbank -> Tabellen -> Ansichten

Es gibt verschiedene Gründe, Ansichten auf SQL Server zu verwenden. Zu den wichtigsten gehören jedoch Sicherheit und Konsistenz.

Um eine Ansicht aus einer Tabelle zu löschen, können Sie die Abfrage der Ansicht wie gezeigt verwenden:

Lassen Sie die Ansicht fallen, wenn existiert top_tausende;

SQL Server indizierte Ansichten

Wie bereits erwähnt, enthält eine normale SQL -Serveransicht keine Daten selbst. Es enthält eine Reihe von Abfragen, die ein bestimmtes Ergebnissatz erzeugen. Dies liefert Sicherheit und Konsistenz. Eine Ansicht bietet jedoch keine Leistungsverbesserung im Ergebnissatz.

Hier kommen indizierte Ansichten ins Spiel.

Indexierte Ansichten sind wie eine normale Datenbanktabelle, da sie Daten physisch speichern können. Dies kann ein großartiges Werkzeug sein, das dazu beitragen kann, die Leistung einer Abfrage zu verbessern.

Lassen Sie uns das Erstellen von Arbeiten mit indizierten Ansichten auf dem SQL -Server diskutieren.

So erstellen Sie eine indizierte Ansicht?

Es gibt zwei wichtige Schritte beim Erstellen einer indizierten Ansicht in SQL Server:

  1. Erstellen Sie eine Ansicht mit einem Schema -Bindungsparameter.
  2. Erstellen Sie als Nächst.

Lassen Sie uns ein Beispiel geben, um zu verstehen, wie Sie eine indizierte Ansicht verwenden können.

Betrachten Sie die folgende Beispielabfrage, die eine indizierte Ansicht auf die Verkaufstabelle erstellt hat.

Erstellen Sie Ansicht sales_indexed mit Schemabinding als ausgewählte Verkäufe.Vertrieb, Umsatz.Productid, Verkäufe.Customerid von DBO.Umsatz, wo die Menge> 1000;
GEHEN

Sie werden ein paar Dinge bemerken, die sich von einer typischen Ansicht unterscheiden. Zunächst schließen wir die mit Schemabindig -Option ein.

Diese Option stellt sicher, dass Sie die Struktur der Tabellen in einem Format, das die zugrunde liegende materialisierte Ansicht beeinflusst.

Zweitens beinhaltet die Benennung ein zweiteiliges Format. SQL Server erfordert, dass Sie das Schema definieren müssen.Objekt beim Erstellen einer indizierten Ansicht (in derselben Datenbank).

HINWEIS: Denken Sie daran, dass SQL Server die Anwendungsänderungen an den zugrunde liegenden Tabellen an der indizierten Ansicht aktualisiert. Dies führt zum Schreiben von Overhead für die Referenztabellen.

Sobald die Ansicht erstellt wurde, müssen wir einen Cluster -Index erstellen. Wir können einen Index erstellen wie:

Erstellen Sie eindeutige Clustered Index my_index auf DBO.sales_indexed (SalesID);

Die obige Abfrage sollte in der Ansicht einen gruppierten Index erstellen. Auf SSMS können Sie den Clustered -Index als:

Sobald wir den Clustered -Index haben, können wir die Daten als:

Wählen Sie * aus DBO aus.sales_indexed;

SQL Server verwendet die sales_indexed Ansicht, anstatt die tatsächlichen Tabellen abzufragen.

Abschluss

In diesem Artikel haben Sie gelernt, wie Sie in SQL Server indexierte Ansichten erstellen und verwenden, sodass Sie eine materialisierte Ansicht erstellen können.