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?

user8365
quelle
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

gbn
quelle