Was ist der Unterschied zwischen Standardansicht und indizierter Ansicht in SQL Server? [Geschlossen]


7

Ich erfahre, dass die indizierte Ansicht die Daten aus Basistabellen enthält, während die Standardansicht keine Daten enthält. Bedeutet dies, dass die indizierte Ansicht Speicher benötigt und die Standardansicht nicht?

Die indizierte Ansicht muss mit dem Schemaobjekt gebunden werden. Ich bin auch verwirrt über den Punkt, dass '*' im Schema-Bindungsobjekt nicht zulässig ist. Zum Beispiel:

create view viewname as select * from tablename

Die obige Aussage kann nicht funktionieren. Warum?


1
Dies kann durch Betrachten einer beliebigen Anzahl von Webressourcen gelöst werden. Dies erfordert nicht die Eingabe eines Datenbankadministrators. Darüber hinaus ist die Frage vage und verwirrend
jcolebrand

Antworten:


14
  • Eine indizierte Ansicht wird physisch auf der Festplatte gespeichert ("materialisiert") = benötigt Speicher
  • Eine Standardansicht ist einfach ein erweiterbares Makro: Es gibt keine Persistenz der Daten und die Basistabellen werden immer verwendet

Weitere Hinweise:

  • Beide geben die korrekten Daten aus den Basistabellen zurück
  • SQL Server wird prüfen, ob die indizierte Ansicht verwendet oder nur wie ein Makro erweitert werden soll (vorbehaltlich der Edition und des NOEXPAND-Hinweises).

SELECT *Dies ist ohnehin eine schlechte Vorgehensweise, *bedeutet jedoch, dass Sie nicht alle Spalten als für indizierte Ansichten erforderlich qualifizieren können

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.