Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Indizierte Ansichten und Left Joins ein für alle Mal

Warum indizieren Sie Ihre Aufrufe? Sie haben in Ihrer Lösung 2 "Platzverschwendung" erwähnt, aber wussten Sie, dass Sie Ihre Ansicht beim Indizieren in der Datenbank beibehalten?

Mit anderen Worten, Sie erstellen eine Kopie der Daten, die die Ansicht in der Datenbank zurückgeben würde, und jedes Mal, wenn die Daten in den Quelltabellen aktualisiert werden, muss ein interner Mechanismus von SQL Server sie auf dieser neuen Datenstruktur aktualisieren, die jetzt erstellt wird SQL Server liest aus der Ansicht, nicht mehr aus den Tabellen.

Wenn Sie Profiler verwenden + DTA oder sogar DMVS Sie können die richtigen Indizes für Ihre Tabellen erstellen, von denen jede Ansicht profitieren würde