Kategorien:

Information Schema, Tabellenfunktionen

SEARCH_OPTIMIZATION_HISTORY

Diese Tabellenfunktion dient zum Abfragen des Wartungsverlaufs des Suchoptimierungsdienstes für bestimmte Tabellen innerhalb eines bestimmten Datumsbereichs. Die von der Funktion zurückgegebenen Informationen umfassen den Namen der Tabelle und die bei jeder Wartungsoperation der Suchoptimierung verbrauchten Credits.

Syntax

SEARCH_OPTIMIZATION_HISTORY(
      [ DATE_RANGE_START => <constant_expr> ]
      [ , DATE_RANGE_END => <constant_expr> ]
      [ , TABLE_NAME => '<string>' ] )
Copy

Argumente

Alle Argumente sind optional.

DATE_RANGE_START => constant_expr, . DATE_RANGE_END => constant_expr

Der Datums-/Uhrzeitbereich, für den der Verlauf angezeigt werden soll. Wenn Sie beispielsweise angeben, dass das Startdatum 03.04.2019 und das Enddatum 05.04.2019 ist, dann erhalten Sie Daten für 3. April, 4. April und 5. April. (Die Endpunkte sind enthalten.)

  • Wenn weder Start- noch Enddatum angegeben sind, werden standardmäßig die letzten 12 Stunden verwendet.

  • Wenn kein Enddatum, aber ein Startdatum angegeben ist, wird CURRENT_DATE um Mitternacht als Ende des Bereichs verwendet.

  • Wenn kein Startdatum, aber ein Enddatum angegeben ist, beginnt der Bereich 12 Stunden vor dem Start von DATE_RANGE_END.

TABLE_NAME => string

Der Tabellenname. Wenn angegeben, wird der Verlauf nur für die angegebene Tabelle angezeigt. Der Name kann den Schemanamen und den Datenbanknamen enthalten.

Wenn kein Name angegeben wird, enthalten die Ergebnisse die Daten jeder Tabelle mit aktivierter Suchoptimierung, die innerhalb des angegebenen Zeitraums gewartet wurde.

Nutzungshinweise

  • Gibt nur Ergebnisse für die Rolle ACCOUNTADMIN oder für eine Rolle zurück, für die die globale Berechtigung MONITOR USAGE explizit erteilt wurde.

    Bemerkung

    Eine Rolle mit der Berechtigung MONITOR USAGE kann die Credit-Nutzung pro Objekt anzeigen, jedoch keine Objektnamen. Der Rolle muss auch SELECT-Berechtigung für ein Objekt erteilt werden, damit der Name von dieser Funktion zurückgegeben wird. Wenn die Rolle nicht über ausreichende Berechtigungen zum Anzeigen des Objektnamens verfügt, wird der Objektname möglicherweise mit einem Ersatznamen wie „unknown_#“ angezeigt, wobei „#“ eine oder mehrere Ziffern repräsentiert.

  • Beim Aufrufen einer Tabellenfunktion des Information Schema muss die Sitzung über ein aktives INFORMATION_SCHEMA-Schema verfügen oder der Funktionsname muss vollqualifiziert sein. Weitere Details dazu finden Sie unter Snowflake Information Schema.

  • Der Verlauf wird in Schritten von 1 Stunde angezeigt.

Ausgabe

Die Funktion gibt die folgenden Spalten zurück:

Spaltenname

Datentyp

Beschreibung

START_TIME

TIMESTAMP_LTZ

Beginn des angegebenen Zeitbereichs.

END_TIME

TIMESTAMP_LTZ

Ende des angegebenen Zeitbereichs.

CREDITS_USED

TEXT

Anzahl der Credits, die für die Wartung des Suchindex im Fenster zwischen START_TIME und END_TIME in Rechnung gestellt werden.

TABLE_NAME

TEXT

Name der Tabelle.

Beispiele

Rufen Sie für Ihr Konto den Aktualisierungsverlauf für einen Bereich von einer Stunde ab:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>'2019-05-22 19:00:00.000',
    date_range_end=>'2019-05-22 20:00:00.000'));
Copy

Hier ist eine Beispielausgabe:

+-------------------------------+-------------------------------+--------------+----------------------------------+
| START_TIME                    | END_TIME                      | CREDITS_USED | TABLE_NAME                       |
|-------------------------------+-------------------------------+--------------+----------------------------------|
| 2019-05-22 19:00:00.000 -0700 | 2019-05-22 20:00:00.000 -0700 |  0.223276651 | TEST_DB.TEST_SCHEMA.TEST_TABLE_1 |
+-------------------------------+-------------------------------+--------------+----------------------------------+
Copy

Rufen Sie den Verlauf der letzten 12 Stunden für Ihr Konto ab:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>dateadd(H, -12, current_timestamp)));
Copy

Rufen Sie den Verlauf der letzten Woche für eine angegebene Tabelle ab:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>dateadd(D, -7, current_date),
    date_range_end=>current_date,
    table_name=>'mydb.myschema.my_table')
    );
Copy

Rufen Sie den Wartungsverlauf der vergangenen Woche für alle Tabellen in Ihrem Konto ab:

select *
  from table(information_schema.search_optimization_history(
    date_range_start=>dateadd(D, -7, current_date),
    date_range_end=>current_date)
    );
Copy