Ändert eine materialisierte Ansicht.
ALTER MATERIALIZED VIEW [ Eigentümer.]Name_materialisierte_Ansicht { SET HIDDEN | { ENABLE | DISABLE } | { ENABLE | DISABLE } USE IN OPTIMIZATION | { ADD PCTFREE Prozent_freier_Speicherplatz | DROP PCTFREE } | [ NOT ] ENCRYPTED [ { IMMEDIATE | MANUAL } REFRESH ] }
Prozent_freier_Speicherplatz : Ganzzahl
SET HIDDEN-Klausel Verwenden Sie die SET HIDDEN-Klausel, um die Definition einer materialisierten Ansicht zu verschleiern. Diese Einstellung ist irreversibel. Weitere Hinweise finden Sie unter Materialisierte Ansichten ausblenden.
ENABLE-Klausel Verwenden Sie die ENABLE-Klausel, um eine deaktivierte materialisierte Ansicht zu aktivieren und damit für die Verwendung durch den Datenbankserver verfügbar zu machen. Diese Klausel hat keine Auswirkung bei einer Ansicht, die bereits aktiviert ist. Nachdem Sie diese Klausel verwendet haben, müssen Sie die Ansicht aktualisieren, um sie zu initialisieren, und Textindizes neu erstellen, die beim Deaktivieren der Ansicht gelöscht wurden.
DISABLE-Klausel Verwenden Sie die DISABLE-Klausel, um die Verwendung der Ansicht durch den Datenbankserver zu deaktivieren. Wenn Sie eine materialisierte Ansicht deaktivieren, löscht der Datenbankserver die Daten und Indizes aus der Ansicht.
{ ENABLE | DISABLE } USE IN OPTIMIZATION-Klausel Verwenden Sie diese Klausel, um anzugeben, ob die materialisierte Ansicht dem Optimierer zur Verfügung stehen soll. Wenn Sie DISABLE USE IN OPTIMIZATION angeben, wird die materialisierte Ansicht nur verwendet, wenn Abfragen ausgeführt werden, die diese Ansicht explizit referenzieren. Der Standardwert ist ENABLE USE IN OPTIMIZATION. Siehe Verwendung einer materialisierten Ansicht durch den Optimierer aktivieren und deaktivieren.
ADD PCTFREE-Klausel Geben Sie den Prozentsatz des Speicherplatzes an, den Sie für jede Seite reservieren möchten. Der freie Speicherplatz wird verwendet, wenn die Zeilen durch die Datenaktualisierung anwachsen. Wenn in einer Seite kein freier Speicherplatz verfügbar ist, führt jede Vergrößerung einer Zeile dieser Seite zu einer Aufteilung der Zeile auf mehrere Seiten, was Zeilenfragmentierung und eventuell Performanceverlust nach sich zieht.
Der Wert von Prozent_freier_Speicherplatz ist eine Ganzzahl zwischen 0 und 100. Der Wert 0 bedeutet, dass auf den einzelnen Seiten kein freier Platz zur Verfügung stehen darf - jede Seite wird vollgeschrieben. Ein hoher Wert führt dazu, dass jede Zeile auf eine eigene Seite geschrieben wird. Wenn PCTFREE nicht festgelegt oder gelöscht wurde, wird die PCTFREE-Standardeinstellung entsprechend der Datenbank-Seitengröße angewendet (200 Byte für eine 4-kB-Seitengröße und 100 Byte für eine 2kB-Seitengröße).
DROP PCTFREE-Klausel Entfernt die derzeit für die materialisierte Ansicht gültige PCTFREE-Einstellung und wendet den PCTFREE-Standardwert entsprechend der Datenbank-Seitengröße an.
[ NOT ] ENCRYPTED-Klausel Gibt an, ob die Daten der materialisierten Ansicht verschlüsselt werden sollen. Standardmäßig werden während der Erstellung die Daten einer materialisierten Ansicht nicht verschlüsselt. Um eine materialisierte Ansicht zu verschlüsseln, geben Sie ENCRYPTED an. Um eine materialisierte Ansicht zu entschlüsseln, geben Sie NOT ENCRYPTED an.
REFRESH-Klausel Benutzen Sie die REFRESH-Klausel, um den Aktualisierungstyp für die materialisierte Ansicht zu ändern:
IMMEDIATE REFRESH Verwenden Sie die IMMEDIATE REFRESH-Klausel, um eine manuelle Ansicht in eine Sofortansicht zu ändern. Die manuelle Ansicht muss gültig und nicht initialisiert sein, wenn der Aktualisierungstyp auf IMMEDIATE REFRESH geändert werden soll. Wenn die Ansicht im initialisierten Zustand ist, führen Sie eine TRUNCATE-Anweisung aus, um den Status auf "nicht initialisiert" zu ändern, bevor Sie die Anweisung ALTER MATERIALIZED VIEW...IMMEDIATE REFRESH ausführen. Siehe TRUNCATE-Anweisung.
Hinweise zu Bedingungen, die vorliegen müssen, bevor Sie eine Ansicht auf IMMEDIATE REFRESH ändern können, finden Sie unter Zusätzliche Einschränkungen für Sofortansichten.
MANUAL REFRESH Verwenden Sie die MANUAL REFRESH-Klausel, um eine Sofortansicht auf manuelle Ansicht zu ändern.
Weitere Hinweise zu Aktualisierungstypen finden Sie unter Manuelle und sofortige materialisierte Ansichten.
Weitere Hinweise zum Status finden Sie unter Status und Eigenschaften von materialisierten Ansichten.
Wenn Sie eine materialisierte Ansicht eines anderen Eigentümers ändern, müssen Sie den Namen qualifizieren, indem Sie den Eigentümer eingeben (z.B. GROUPO.EmployeeConfidential). Wenn Sie den Namen nicht qualifizieren, sucht der Datenbankserver nach einer Ihnen gehörenden materialisierten Ansicht mit diesem Namen und ändert sie. Wenn eine solche nicht vorhanden ist, wird ein Fehler zurückgegeben.
Wenn Sie eine materialisierte Ansicht deaktivieren (DISABLE-Klausel), steht sie dem Datenbankserver zur Beantwortung von Abfragen nicht mehr zur Verfügung. Außerdem werden die Daten und Indizes gelöscht und der Aktualisierungstyp ändert sich auf "Manuell". Eventuelle abhängige Ansichten werden ebenfalls deaktiviert.
Die DISABLE-Klausel erfordert einen exklusiven Zugriff nicht nur auf die Ansicht, die deaktiviert wird, sondern auch auf alle abhängigen Ansichten, da diese ja auch deaktiviert werden. Siehe Materialisierte Ansichten aktivieren und deaktivieren.
Damit eine materialisierte Ansicht verschlüsselt werden kann (ENCRYPTED-Klausel), muss die Tabellenverschlüsselung bereits in der Datenbank aktiviert sein. Die Verschlüsselung erfolgt unter Verwendung des Chiffrierschlüssels und des Algorithmus, die bei der Datenbankerstellung festgelegt wurden. Siehe Materialisierte Ansichten ver- und entschlüsseln.
Um die ALTER MATERIALIZED VIEW-Anweisung auszuführen, müssen Sie Eigentümer der Ansicht sein oder DBA-Berechtigung haben.
Wenn Sie keine DBA-Berechtigung haben, aber eine materialisierte Ansicht auf eine Sofortansicht ändern möchten (ALTER MATERIALIZED VIEW ... IMMEDIATE REFRESH), müssen Sie Eigentümer der Ansicht und aller Tabellen sein, die von ihr referenziert werden.
Die einzigen Vorgänge, die ein Benutzer in einer materialisierten Ansicht durchführen kann, um ihre Daten zu verändern, sind: Aktualisieren, Kürzen, Deaktivieren. Sofortansichten werden allerdings vom Datenbankserver automatisch aktualisiert. Das heißt: Wenn eine Sofortansicht aktiviert und initialisiert ist, pflegt der Datenbankserver sie automatisch, ohne dass weitere Berechtigungsprüfungen erfolgen.
Automatisches Festschreiben (Autocommit).
SQL/2008 Erweiterung des Herstellers.
Die folgenden Anweisungen erstellen die materialisierte Ansicht EmployeeConfid88 und deaktivieren dann ihre Verwendung für die Optimierung:
CREATE MATERIALIZED VIEW EmployeeConfid88 AS SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID, Departments.DepartmentName, Departments.DepartmentHeadID FROM Employees, Departments WHERE Employees.DepartmentID=Departments.DepartmentID; REFRESH MATERIALIZED VIEW EmployeeConfid88; ALTER MATERIALIZED VIEW GROUPO.EmployeeConfid88 DISABLE USE IN OPTIMIZATION; |
Wenn Sie dieses Beispiel durchgeführt haben, löschen Sie die von Ihnen erstellte materialisierte Ansicht. Andernfalls können Sie keine Schemaänderungen an ihren Basistabellen Employees und Departments durchführen, wenn Sie andere Beispiele ausprobieren. Sie können das Schema einer Tabelle nicht ändern, die aktivierte, materialisierte Ansichten haben. Siehe Materialisierte Ansichten löschen.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2010, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.0 |