Wann sollten Datenbankansichten verwendet werden und wann nicht?
Diese Frage ist über Datenbank-views, nicht materialisierte-sichten.
Vorteile:
- Abfrage-Vereinfachung.
- Vermeiden, wiederholen Sie die gleichen Verknüpfungen auf vielfachen Abfragen.
- Vermeiden magischen zahlen.
Nachteile:
- Verstecken real-Abfragen (vielleicht sind Sie zu wiederholen "joins").
Was anderes?
InformationsquelleAutor der Frage FerranB | 2009-03-10
Du musst angemeldet sein, um einen Kommentar abzugeben.
Vorteile:
Erlaubt die änderung der zugrunde liegenden Daten-Strukturen, ohne die Abfragen Anwendungen verwenden (solange Sie Ihre Sicht verstecken können, werden die Daten-Strukturen)
InformationsquelleAutor der Antwort Andy White
Sicherheit. Gewähren von Zugriff auf einen view der Benutzer sollte in der Lage sein zu sehen, die Spalten zurückgegeben.
InformationsquelleAutor der Antwort John Saunders
Ansichten sind ziemlich genial, wenn Sie nicht vollständig Vertrauen in die Partei senden Sie Anfragen an die Datenbank. Ein gutes Beispiel könnte sein, erstellen Sie einen view über die Tabellen für einen Auftragnehmer, so dass alle Sie sehen können, sind die Zeilen in Bezug auf Ihre Projekt.
InformationsquelleAutor der Antwort SingleNegationElimination
Obwohl Ansichten verbergen können Komplexität und mehrere Verknüpfungen, ist diese Komplexität, die in den SP sowieso.
Wenn die SP konnte wurden optimiert, dann sollte die Ansicht optimiert werden, die Folge wären höhere Leistung auf alle SPs, Treffer, anzeigen.
Ansichten sind unglaublich mächtig und nützlich für einen Grund, zeichnet sich vor allen anderen sehr guten Gründen. Sie reduzieren die code-Duplizierung. Das ist in den meisten Fällen in der unteren Zeile. Wenn eine Abfrage wird verwendet, drei oder mehr stellen, dann eine Sicht drastisch vereinfachen Sie Ihre änderungen, wenn das schema oder die Abfrage-Parameter ändern.
Hatte ich auch mal Bearbeiten 22 gespeicherte Prozeduren zum ändern der Abfrage-Logik. Wenn die ursprüngliche Architektur hatte verwertet, Ansichten, dann hätte ich nur drei änderungen.
InformationsquelleAutor der Antwort DevinB
Nun, dass der SQL-Server hat common table expressions ich finde mich schafft weniger Aussicht. Wenn ich eine Ansicht erstellen, ist es meist für eine normalisierte Hierarchie, die verwendet werden können in vielen Abfragen nicht etwas, das ersetzt eine Abfrage.
Beispielsweise Region, Markt und Stadt können drei normalisierte Tabellen (Schneeflocke). 90% meiner Anfragen diese Daten benötigen, so werde ich eine Ansicht erstellen. Die Ansicht ersetzt niemals eine einzelne Abfrage macht aber alle anderen Abfragen einfach und TROCKEN.
InformationsquelleAutor der Antwort jason saldo
Habe ich zu verwenden habe Aussicht auf ein paar mal für sehr seltsam joins und Gruppierung von Aliase.
Durch merkwürdige Verknüpfungen, ich meine die Auswahl einer Liste von verschiedene Termine und dann äußere schlossen sich Ihnen an den Tisch zurück, Sie kam um null-Einträge für die leeren Tage. Ich konnte nicht herausfinden, jeder andere Weg, es zu tun.
Als für die Gruppierung von Aliase, schien es, dass abhängig von der Komplexität der Formel in der alias. Wenn der alias nicht auf irgendwelche tatsächlichen Spalten oder Spalten, wurden bereits gruppiert, alles war ok, aber die Aliase auf Spalten, die nicht im Lieferumfang enthalten in der Gruppierung warfen Fehler.
Ich scheine zu erinnern, zu Lesen oder zu hören, irgendwo während meiner Studienzeit, dass eine Ansicht auswählen, die schneller war als die Auswahl aus einer Reihe von verknüpften Tabellen, aber ich weiß nicht, ob das stimmt.
Einen letzten Vorteil der Verwendung einer Sicht: pivot-Tabellen in Excel. Ich glaube nicht, dass es einen Weg gibt, der das verknüpfen von Tabellen, oder zumindest nicht in der Assistenten-Benutzeroberfläche. Es könnte möglich sein, das zu tun, von Verknüpfungen in Microsoft Query, aber ich noch nicht versucht, weil der Gedanke kam mir jetzt.
InformationsquelleAutor der Antwort Scott
Ich verwendet, um Sie die ganze Zeit, jetzt selten. Ich habe aber alle meine Daten zugreifen thru gespeicherte Prozeduren, so dass die Nützlichkeit der Blick ist etwas geringer, da die SP kann verstecken die Komplexität der Verknüpfung, wo nötig.
Ich würde noch erwägen Sie die Verwendung ein, wenn eine hatte eine besonders komplizierte trat der viele Tabellen, von die ich brauchte, um dann bauen viele SP ' s oben, aber um ehrlich zu sein, ich kann nicht jeder denken ich habe in der Produktion jetzt.
Dem anderen Szenario würde ich verwenden würde, man wäre da, wo meine Benutzer haben Zugriff auf die Datenbank für die Erstellung Ihrer eigenen Berichte, und ich wollte zu verstecken, die zugrunde liegende Komplexität für Sie.
InformationsquelleAutor der Antwort E.J. Brennan