Ändert eine materialisierte Ansicht.
ALTER MATERIALIZED VIEW [ owner.]materialized-view-name { SET HIDDEN | { ENABLE | DISABLE } | { ENABLE | DISABLE } USE IN OPTIMIZATION | { ADD PCTFREE percent-free-space | DROP PCTFREE } | [ NOT ] ENCRYPTED | [ { IMMEDIATE | MANUAL } REFRESH ] }
percent-free-space : integer
SET HIDDEN-Klausel Verwenden Sie die SET HIDDEN-Klausel, um die Definition einer materialisierten Ansicht zu verschleiern. Diese Einstellung ist irreversibel.
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.
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 percent-free-space 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 2-kB-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.
MANUAL REFRESH Verwenden Sie die MANUAL REFRESH-Klausel, um eine Sofortansicht auf manuelle Ansicht zu ändern.
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 reguläre 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.
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.
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 bedeutet: Sobald eine Sofortansicht aktiviert und initialisiert ist, verwaltet der Datenbankserver sie automatisch, ohne dass weitere Privilegüberprüfungen erfolgen.
Sie müssen entweder Eigentümer der materialisierten Ansicht sein oder das ALTER ANY MATERIALIZED VIEW-Systemprivileg oder das ALTER ANY OBJECT-Systemprivileg haben.
Wenn Sie ein erforderliches Privileg nicht haben, aber eine materialisierte Ansicht in eine Sofortansicht ändern möchten (ALTER MATERIALIZED VIEW...IMMEDIATE REFRESH), müssen Sie Eigentümer der Ansicht und aller von ihr referenzierten Tabellen sein.
SQL/2008 Erweiterung des Herstellers.
Die folgenden Anweisungen erstellen die materialisierte Ansicht EmployeeConfid88 und deaktivieren dann ihre Verwendung für die Optimierung. Um dieses Beispiel ausführen zu können, benötigen Sie auch das CREATE ANY MATERIALIZED VIEW-Systemprivileg sowie das SELECT-Privileg für die Tabellen "Employees" und "Departments".
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.
CREATE MATERIALIZED VIEW EmployeeConfid88 AS SELECT EmployeeID, Employees.DepartmentID, SocialSecurityNumber, Salary, ManagerID, Departments.DepartmentName, Departments.DepartmentHeadID FROM GROUPO.Employees, GROUPO.Departments WHERE Employees.DepartmentID=Departments.DepartmentID; REFRESH MATERIALIZED VIEW EmployeeConfid88; ALTER MATERIALIZED VIEW EmployeeConfid88 DISABLE USE IN OPTIMIZATION; |
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2013, SAP AG oder ein SAP-Konzernunternehmen. - SAP Sybase SQL Anywhere 16.0 |