Gibt Informationen über die angegebenen materialisierten Ansichten zurück
sa_materialized_view_info( [ view_name [, owner_name ] ] )
view_name Verwenden Sie diesen optionalen CHAR(128)-Parameter, um den Namen der materialisierten Ansicht anzugeben, aus der Informationen zurückgegeben werden sollen.
owner_name Verwenden Sie diesen optionalen CHAR(128)-Parameter, um den Eigentümer der materialisierten Ansicht anzugeben.
Wenn weder view_name noch owner_name angegeben sind, werden Informationen über alle materialisierten Ansichten in der Datenbank zurückgegeben.
Wenn der owner_name nicht angegeben wird, werden Informationen über alle materialisierten Ansichten namens view_name zurückgegeben.
Die Systemprozedur sa_materialized_view_info gibt für eine materialisierte Ansicht folgende Informationen zurück:
Spaltenname | Datentyp | Beschreibung |
---|---|---|
OwnerName | CHAR(128) | Der Eigentümer der Ansicht. |
ViewName | CHAR(128) | Der Name der Ansicht |
Status | CHAR(1) |
Statusinformationen über die Ansicht. Die möglichen Werte sind:
|
DataStatus | CHAR(1) |
Statusinformationen über Daten in der Ansicht. Die möglichen Werte sind:
|
ViewLastRefreshed | TIMESTAMP |
Die Uhrzeit der letzten Aktualisierung der Ansicht. Wenn der Wert von ViewLastRefreshed gleich NULL ist, wird die Ansicht deinitialisiert. |
DataLastModified | TIMESTAMP |
Bei einer veralteten Ansicht der letzte Zeitpunkt, an dem die zugrunde liegenden Daten geändert wurden. Der Wert ist NULL für Ansichten, die nicht initialisiert wurden, oder für Ansichten, die nicht als veraltet eingestuft werden. |
AvailForOptimization | CHAR(1) |
Informationen über die Verfügbarkeit der Ansicht für die Verwendung durch den Optimierer. Die möglichen Werte sind:
|
RefreshType | CHAR(1) |
Der Aktualisierungstyp für die Ansicht. Die möglichen Werte sind:
|
Diese Prozedur kann nützlich sein, um die Liste der materialisierten Ansichten zu erhalten, die nie vom Optimierer in Betracht gezogen werden, weil es ein Problem bei der Ansichtsdefinition gibt. Der Wert von AvailForOptimization ist bei diesen materialisierten Ansichten "I".
Die folgende Tabelle zeigt, wie die AvailForOptimization-Eigenschaft festgelegt wird. Beginnend mit der linken Spalte lesen Sie quer über die Zeile, um die Bedingungen zu ermitteln, die vorliegen müssen, damit als Ergebnis der Wert gezeigt wird, der in der AvailForOptimization-Spalte steht.
Erlaubt der Benutzer die Verwendung der Ansicht in der Optimierung? | Erfüllt die Ansichtsdefinition alle Bedingungen für die Verwendung? | Entsprechen die Verbindungsoptionen denjenigen, die für die Verwendung der Ansicht gefordert werden? | Ist die Ansicht initialisiert? | AvailForOptimization-Wert |
---|---|---|---|---|
Ja | Ja | Ja | Ja | J |
Nein | k.A. | k.A. | k.A. | D |
Ja | Nein | k.A. | Ja | I |
Ja | k.A. | k.A. | Nein | N |
Ja | Ja | Nein | Ja | O |
Eine initialisierte materialisierte Ansicht kann leer sein. Dies kommt vor, wenn in den Basistabellen keine Daten vorhanden sind, die zur Definition der materialisierten Ansicht passen. Eine leere Ansicht wird nicht als identisch mit einer nicht initialisierten materialisierten Ansicht angesehen, die ebenfalls keine Daten hat. Mit dem Wert der Eigenschaft ViewLastRefreshed können Sie ermitteln, ob die Ansicht nicht initialisiert (NULL) oder wegen nicht passender Daten in der Basistabelle leer ist (Nicht-Null).
DBA-Berechtigung oder Berechtigung zum Ausführen für dem DBO gehörende Prozeduren
Alle Metadaten für die angegebenen materialisierten Ansichten sowie alle Abhängigkeiten werden in den Cache des Datenbankservers geladen.
Die folgende Anweisung gibt Informationen über alle materialisierten Ansichten in der Datenbank zurück:
SELECT * FROM sa_materialized_view_info(); |
Die Ergebnisse der sa_materialized_view_info-Systemprozedur können mit den Ergebnissen der sa_materialized_view_can_be_immediate-Systemprozedur kombiniert werden, um Statusinformationen darüber zurückzugeben, ob die Ansicht als Sofortansicht geeignet ist. Führen Sie die nachstehenden Anweisungen aus, um materialisierte Ansichten zu erstellen, die für dieses Beispiel geprüft werden:
CREATE MATERIALIZED VIEW view0 AS ( SELECT ID, Name, Description, Size FROM Products WHERE Quantity > 0 ); CREATE UNIQUE INDEX u_view0 ON view0( ID ); ALTER MATERIALIZED VIEW view0 IMMEDIATE REFRESH; CREATE MATERIALIZED VIEW view00 AS ( SELECT ID, Name, Description, Size FROM Products WHERE Quantity <= 0 ); CREATE UNIQUE INDEX u_view00 ON view00( ID ); CREATE MATERIALIZED VIEW view1 AS ( SELECT ID, Name, Description, Size FROM Products WHERE Quantity = 0 ); ALTER MATERIALIZED VIEW view1 DISABLE; CREATE MATERIALIZED VIEW view100 AS (SELECT C.ID, C.Surname, sum(P.UnitPrice) as revenue, C.CompanyName, SO.OrderDate FROM Customers C, SalesOrders SO, SalesOrderItems SOI, Products P WHERE C.ID = SO.CustomerID AND SO.ID = SOI.ID AND P.ID = SOI.ProductID GROUP BY C.ID, C.Surname, C.CompanyName, SO.OrderDate); REFRESH MATERIALIZED VIEW view100; |
Führen Sie die folgende Anweisung aus, um den Status und die Verwendbarkeitsinformationen für die gerade erstellten Ansichten zurückgeben:
SELECT ViewName, Status, ViewLastRefreshed, AvailForOptimization, RefreshType, CanBeImmediate FROM sa_materialized_view_info() AS V, LATERAL( SELECT LIST( ErrorMessage, '' ) FROM sa_materialized_view_can_be_immediate( V.ViewName, V.OwnerName ) ) AS I( CanBeImmediate );; |
ViewName | Status | ViewLastRefreshed | AvailForOptimization | RefreshType | CanBeImmediate |
---|---|---|---|---|---|
view0 | E | (NULL) | N | I | |
view00 | E | (NULL) | N | M | |
view1 | D | (NULL) | N | M | Cannot use view 'view1' because it has been disabled |
view100 | E | 2008-02-12 16:47:00.000 | Y | M | The materialized view view100 cannot be changed to immediate because it has already been initialized. The materialized view
view100 cannot be changed to immediate because it does not have a unique index on non-nullable columns. The materialized view
cannot be changed to immediate because COUNT(*) is required to be part of the SELECT list. The materialized view cannot be
changed to immediate because it does not have a unique index on non-aggregate non-nullable columns .
|
Aus den Ergebnissen können Sie folgende Informationen ablesen:
view0 wurde nie aktualisiert und ist eine Sofortansicht.
view00 wurde nie aktualisiert und ist eine manuelle Ansicht.
view1 ist deaktiviert.
view100 ist eine manuelle Ansicht, die zuletzt am 2008-02-12 um 16:47:00.000 aktualisiert wurde.
view00 kann in eine Sofortansicht umgewandelt werden, weil in der Spalte CanBeImmediate keine Fehlermeldungen stehen.
view1 und view100 können aus den Gründen, die in der CanBeImmediate-Spalte stehen, nicht in Sofortansichten umgewandelt werden.
![]() |
Kommentieren Sie diese Seite in DocCommentXchange.
|
Copyright © 2012, iAnywhere Solutions, Inc. - SQL Anywhere 12.0.1 |