Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Referenzhandbuch » Verwendung von SQL » SQL-Anweisungen » SQL-Anweisungen (A-D)

 

ALTER MATERIALIZED VIEW-Anweisung

Mit dieser Anweisung ändern Sie eine materialisierte Ansicht.

Syntax
ALTER MATERIALIZED VIEW [ Eigentümer.]Materialisierte_Ansicht_Name { 
 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
Parameter
  • 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. Weitere Hinweise finden Sie unter 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 4KByte-Seitengröße und 100 Byte für eine 2KByte-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. Weitere Hinweise finden Sie unter 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.

Bemerkungen

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. Weitere Hinweise finden Sie unter 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. Weitere Hinweise finden Sie unter Materialisierte Ansichten ver- und entschlüsseln.

Berechtigungen

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.

Nebenwirkungen

Automatisches Festschreiben (Autocommit).

Siehe auch
Standards und Kompatibilität
  • SQL/2003   Erweiterung des Herstellers

Beispiel

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;
Achtung

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. Weitere Hinweise finden Sie unter Materialisierte Ansichten löschen.