Verbrauchen VIEWs Speicherplatz?

Mr. Robot

Fleissiger Benutzer
Beiträge
88
Hallo Zusammen,

mal angenommen ich habe eine Tabelle1. Darauf aufbauend erstelle ich eine View1. Und daraus ein Report1. Wenn ich nun ein Report2 erstelle, welches ebenfalls als Datenquelle die View1 benötigt... macht es mehr Sinn die View1 zu nehmen oder wäre es besser die gleiche View als View2 abzuspeichern?

Es besteht die Möglichkeit das man in Zukunft vielleicht noch die View speziell für den Bericht anpassen muss... so könnte man View2 anpassen ohne über die View1 nachzudenken. Allerdings frage ich mich auch, ob es Speicherkapazitäten kostet... wenn man zum Beispiel 10 Reports hat welche die gleiche Tabelle1 nutzen... angelegt in 10 gleichen Views?

Freue mich über eine Einschätzung.

Vielen Dank!
 
Werbung:
vermutlich ist es in M$SQL recht ähnlich wie z.B. in PostgreSQL. Da gibt es eine Systemtabelle pg_catalog.pg_views:

Code:
test=# \d pg_views
             View "pg_catalog.pg_views"
   Column   | Type | Collation | Nullable | Default
------------+------+-----------+----------+---------
 schemaname | name |           |          |
 viewname   | name |           |          |
 viewowner  | name |           |          |
 definition | text |           |          |

test=#

Jede VIEW hat da also einen Eintrag, aber das, was da an Platz benötigt wird, ist minimal.
 
Wie erkennt man, dass es minimal ist? Im SQL Server Management Studio sehe ich unter Sichten / Systemsichten und [INFORMATION_SCHEMA].[TABLES] alle Tabellen. Aber keine Informationen über die Größe.
 
Normalerweise ist der Speicherplatz für View-Definitionen sowieso aber auch für Indexe eher irrelevant. Klar große Tabelle, großer Index aber wer die großen Tabellen hat hat auch großen Speicherplatz, da kommt es auf die paar MB nicht an.

Es gibt noch materialized views in verschieden SQL-DBs, die verbrauchen auch Speicherplatz.
 
Die Abfrage auf stackoverflow gibt mir leider nur eine leere Menge zurück. Also insgesamt verbrauchen VIEWs wenig Speicherplatz so wie ich es verstehe? Was genau ist eigentlich der Unterschied zwischen Datenspeicher und Indexspeicher?
 
Werbung:
Eine einfache View verbraucht keinen Speicher für Daten weil sie keine Daten speichert. Die Daten liegen in den Tabellen wie zuvor. Es ist nur der Code, die Definition der View, der ein wenig Platz braucht. Ein Index ist im Prinzip ein Inhaltsverzeichnis. Das speichert z.B. die Primärschlüssel neu nur eben in einer neuen Reihenfolge so das schneller darauf zugegriffen werden kann.
 
Zurück
Oben