Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS

Gibt die geschätzten Kosten für das Hinzufügen der Suchoptimierung zu einer bestimmten Tabelle und das Konfigurieren bestimmter Spalten für die Suchoptimierung zurück.

Wichtig

Die von der Funktion SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS zurückgegebenen Kostenschätzungen werden mit bestmöglichen Bemühungen vorgenommen. Die geschätzten Kosten können allerdings erheblich (bis zu 50 % oder in seltenen Fällen um ein Vielfaches) von den tatsächlich realisierten Kosten abweichen.

  • Die Schätzungen der Build- und Speicherkosten basieren auf einer Stichprobe einer Teilmenge der Zeilen in der Tabelle

  • Die Schätzungen der Wartungskosten basieren auf den jüngsten Erstellungs-, Lösch- und Aktualisierungsaktivitäten in der Tabelle

Syntax

SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('<table_name>' [ , '<search_method_with_target>' ])
Copy

Argumente

Erforderlich:

table_name

Tabelle, für die Sie die Kosten für die Suchoptimierung schätzen möchten.

Wenn der Tabellenname nicht vollqualifiziert ist (in Form von db_name.schema_name.table_name oder schema_name.table_name), sucht die Funktion die Tabelle im aktuellen Schema der Sitzung.

Der gesamte Name muss in einfache Anführungszeichen gesetzt werden.

Optional:

search_method_with_target

Gibt Suchmethode und Ziel einer Spaltenkonfiguration an, ähnlich dem, was in der ON-Klausel des Befehls ALTER TABLE … ADD SEARCH OPTIMIZATION angegeben werden kann.

Das gesamte Argument muss in einfache Anführungszeichen gesetzt werden. Setzen Sie innerhalb dieser Zeichenfolge doppelte Anführungszeichen um die Spaltennamen, falls erforderlich.

Ausgabe

Die Funktion gibt ein JSON-Objekt mit den unten beschriebenen Eigenschaften zurück:

Eigenschaft

Beschreibung

tableName

Name der Tabelle.

searchOptimizationEnabled

true, wenn die Suchoptimierung für die Tabelle oder für beliebige Spalten darin aktiviert ist, sonst false.

costPositions

Array von Objekten, die die prognostizierten Kosten für das Hinzufügen der Suchoptimierung zur Tabelle oder deren Spalten beschreiben.

Jedes Objekt im Array costPositions repräsentiert einen andere Typ der Kostenschätzung:

...
"costPositions" : [
  {
    "name" : "BuildCosts",
    ...
  }, {
    "name" : "StorageCosts",
    ...
  }, {
    "name" : "Benefit",
    ...
  }, {
    "name" : "MaintenanceCosts",
    ...
  }
]
...
Copy

Die Eigenschaft name gibt den Typ der Kosten an, die vom Objekt repräsentiert werden. name kann Folgendes sein:

name des Objekts in costPositions

Beschreibung

BuildCosts

Dieses Objekt beschreibt die prognostizierten Kosten für die Erstellung des Suchzugriffspfads für die Tabelle. Wenn die Suchoptimierung bereits der Tabelle oder allen angegebenen Spalten hinzugefügt wurde, enthält dieses Objekt keine Kosteninformationen.

StorageCosts

Dieses Objekt beschreibt die prognostizierte Menge an Speicherplatz (in TB), die für den Suchzugriffspfad der Tabelle benötigt wird. Wenn die Suchoptimierung bereits der Tabelle oder einer ihrer Spalten hinzugefügt wurde, zeigt dieses Objekt den aktuellen Bedarf an Speicherplatz an, der von Suchzugriffspfaden genutzt wird.

Benefit

Dieses Objekt wird nur angezeigt, wenn für die Tabelle die Suchoptimierung aktiviert ist. Sie enthält derzeit keine Informationen.

MaintenanceCosts

Dieses Objekt beschreibt die prognostizierten Kosten für die Verwaltung des Suchzugriffspfads der Tabelle für das Einfügen, Löschen oder Ändern von Zeilen. Wenn die Tabelle erst kürzlich erstellt wurde, werden keine Kosteninformationen ausgegeben.

Jedes Objekt im Array costPositions kann die folgenden Eigenschaften haben:

Eigenschaft

Beschreibung

name

Name, der den Typ der von diesem Objekt repräsentierten Kosteninformationen angibt.

costs

Objekt, das die prognostizierten Kosten anhand der folgenden Eigenschaften beschreibt:

value

Betrag der prognostizierten Kosten.

unit

Maßeinheit für die Kosten (z. B. „Credits“ für Computekosten, „TB“ für Speicherkosten usw.).

perTimeUnit

Für Wartungskosten die Zeiteinheit, die die geschätzten Kosten abdeckt (z. B. "MONTH" für die Kosten pro Monat).

computationMethod

Methode zur Schätzung der Kosten, wenn mehrere Methoden verfügbar sind.

comment

Zusätzliche Informationen zu den geschätzten Kosten.

Nutzungshinweise

  • Die Eigenschaft searchOptimizationEnabled ist true, wenn die Suchoptimierung für die Tabelle oder eine darin enthaltene Spalte aktiviert ist.

  • Für die Erstellungskosten gibt diese Funktion einen Näherungswert zurück, der sich auf die Erstellung von Suchzugriffspfaden für eine Stichprobe der Daten in der angegebenen Tabelle bezieht.

  • Für die Wartungskosten basieren die Schätzungen dieser Funktion auf den letzten Änderungen, die an der Tabelle vorgenommen wurden (die Änderungen in Bytes im Laufe der Zeit).

  • Zum Aufrufen der Funktion ist ein aktives Warehouse erforderlich. Wenn derzeit kein aktives Warehouse vorhanden ist, gibt die Funktion folgende Fehlermeldung aus:

    No active warehouse selected in the current session.
    Select an active warehouse with the 'use warehouse' command.
    
    Copy

    Die Größe des Warehouses hat keinen Einfluss auf die Performance dieser Funktion, sodass Sie ein Warehouse der Größe X-Small verwenden können.

  • Da die Funktion ein Warehouse verwendet, wird Ihnen nun die Warehouse-Nutzung für diese Funktion in Rechnung gestellt.

  • Die Ausführung der Funktion kann zwischen 20 Sekunden und 10 Minuten dauern. Die Verwendung eines größeren Warehouses führt nicht zu einer schnelleren Ausführung.

Beispiele

Das folgende Beispiel zeigt die geschätzten Kosten für das Hinzufügen einer Suchoptimierung zu einer Tabelle:

SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_without_search_opt')
  AS estimate_for_table_without_search_optimization;
Copy
+---------------------------------------------------------------------------+
| ESTIMATE_FOR_TABLE_WITHOUT_SEARCH_OPTIMIZATION                            |
|---------------------------------------------------------------------------|
| {                                                                         |
|   "tableName" : "TABLE_WITHOUT_SEARCH_OPT",                               |
|   "searchOptimizationEnabled" : false,                                    |
|   "costPositions" : [ {                                                   |
|     "name" : "BuildCosts",                                                |
|     "costs" : {                                                           |
|       "value" : 11.279,                                                   |
|       "unit" : "Credits"                                                  |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "estimated via sampling"                                  |
|   }, {                                                                    |
|     "name" : "StorageCosts",                                              |
|     "costs" : {                                                           |
|       "value" : 0.070493,                                                 |
|       "unit" : "TB"                                                       |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "estimated via sampling"                                  |
|   }, {                                                                    |
|     "name" : "MaintenanceCosts",                                          |
|     "costs" : {                                                           |
|       "value" : 30.296,                                                   |
|       "unit" : "Credits",                                                 |
|       "perTimeUnit" : "MONTH"                                             |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "Estimated from historic change rate over last ~11 days." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+

Das folgende Beispiel zeigt die Ausgabe dieser Funktion für eine Tabelle, die bereits über eine Suchoptimierung verfügt. Sie sehen, dass in diesem Fall keine Informationen zu den Erstellungskosten verfügbar sind. Auch die Eigenschaft Benefit ist enthalten (sie enthält jedoch keine Informationen).

SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_with_search_opt')
  AS estimate_for_table_with_search_optimization;
Copy
+---------------------------------------------------------------------------+
| ESTIMATE_FOR_TABLE_WITH_SEARCH_OPTIMIZATION                               |
|---------------------------------------------------------------------------|
| {                                                                         |
|   "tableName" : "TABLE_WITH_SEARCH_OPT",                                  |
|   "searchOptimizationEnabled" : true,                                     |
|   "costPositions" : [ {                                                   |
|     "name" : "BuildCosts",                                                |
|     "computationMethod" : "NotAvailable",                                 |
|     "comment" : "Search optimization is already enabled."                 |
|   }, {                                                                    |
|     "name" : "StorageCosts",                                              |
|     "costs" : {                                                           |
|       "value" : 0.052048,                                                 |
|       "unit" : "TB"                                                       |
|     },                                                                    |
|     "computationMethod" : "Measured"                                      |
|   }, {                                                                    |
|     "name" : "Benefit",                                                   |
|     "computationMethod" : "NotAvailable",                                 |
|     "comment" : "Currently not supported."                                |
|   }, {                                                                    |
|     "name" : "MaintenanceCosts",                                          |
|     "costs" : {                                                           |
|       "value" : 30.248,                                                   |
|       "unit" : "Credits",                                                 |
|       "perTimeUnit" : "MONTH"                                             |
|     },                                                                    |
|     "computationMethod" : "EstimatedUpperBound",                          |
|     "comment" : "Estimated from historic change rate over last ~11 days." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+

Das folgende Beispiel zeigt die Ausgabe dieser Funktion zur Schätzung der Suchoptimierung für drei bestimmte Spalten einer Tabelle unter Verwendung der Suchmethode EQUALITY (d. h. die Schätzung bezieht sich auf die Aktivierung der Suchoptimierung nur für Gleichheitsvergleiche auf diesen Spalten). Weder bei der Tabelle noch bei einer ihrer Spalten wurde bereits irgendein Typ von Suchoptimierung aktiviert.

SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_without_search_opt', 'EQUALITY(C1, C2, C3)')
  AS estimate_for_columns_without_search_optimization;
Copy
+---------------------------------------------------------------------------+
| ESTIMATE_FOR_COLUMNS_WITHOUT_SEARCH_OPTIMIZATION                          |
|---------------------------------------------------------------------------|
| {                                                                         |
|   "tableName" : "TABLE_WITHOUT_SEARCH_OPT",                               |
|   "searchOptimizationEnabled" : false,                                    |
|   "costPositions" : [ {                                                   |
|     "name" : "BuildCosts",                                                |
|     "costs" : {                                                           |
|       "value" : 10.527,                                                   |
|       "unit" : "Credits"                                                  |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "estimated via sampling"                                  |
|   }, {                                                                    |
|     "name" : "StorageCosts",                                              |
|     "costs" : {                                                           |
|       "value" : 0.040323,                                                 |
|       "unit" : "TB"                                                       |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "estimated via sampling"                                  |
|   }, {                                                                    |
|     "name" : "MaintenanceCosts",                                          |
|     "costs" : {                                                           |
|       "value" : 22.821,                                                   |
|       "unit" : "Credits",                                                 |
|       "perTimeUnit" : "MONTH"                                             |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "Estimated from historic change rate over last ~7 days."  |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+

Wenn eine ähnliche Abfrage auf einer Tabelle ausgeführt wird, in der die Suchoptimierung bereits für eine der angegebenen Spalten aktiviert ist, enthält die Ausgabe eine Schätzung der Erstellungskosten für das Hinzufügen der Suchoptimierung zu den angegebenen Spalten, in denen sie noch nicht aktiviert ist. Dies unterscheidet sich von dem früheren Beispiel, in dem wir die Suchoptimierung für eine ganze Tabelle geschätzt haben, in der die Suchoptimierung bereits aktiviert war, was zu keiner Schätzung der Erstellungskosten führte, da keine Erstellungsverarbeitung auszuführen war.

Die Speicherschätzung umfasst hier nur die tatsächliche Größe des Suchzugriffspfads für die Spalten, für die die Suchoptimierung bereits aktiviert wurde.

Der Schätzung für die Wartung deckt alle angegebenen Spalten ab, unabhängig davon, ob die Suchoptimierung bereits aktiviert ist oder nicht.

SELECT SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('table_with_search_opt', 'EQUALITY(C1, C2, C3)')
  AS estimate_for_columns_with_search_optimization;
Copy
+---------------------------------------------------------------------------+
| ESTIMATE_FOR_COLUMNS_WITH_SEARCH_OPTIMIZATION                             |
|---------------------------------------------------------------------------|
| {                                                                         |
|   "tableName" : "TABLE_WITH_SEARCH_OPT",                                  |
|   "searchOptimizationEnabled" : true,                                     |
|   "costPositions" : [ {                                                   |
|     "name" : "BuildCosts",                                                |
|     "costs" : {                                                           |
|       "value" : 8.331,                                                    |
|       "unit" : "Credits"                                                  |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "estimated via sampling"                                  |
|   }, {                                                                    |
|     "name" : "StorageCosts",                                              |
|     "costs" : {                                                           |
|       "value" : 0.040323,                                                 |
|       "unit" : "TB"                                                       |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "estimated via sampling"                                  |
|   }, {                                                                    |
|     "name" : "Benefit",                                                   |
|     "computationMethod" : "NotAvailable",                                 |
|     "comment" : "Currently not supported."                                |
|   }, {                                                                    |
|     "name" : "MaintenanceCosts",                                          |
|     "costs" : {                                                           |
|       "value" : 22.821,                                                   |
|       "unit" : "Credits",                                                 |
|       "perTimeUnit" : "MONTH"                                             |
|     },                                                                    |
|     "computationMethod" : "Estimated",                                    |
|     "comment" : "Estimated from historic change rate over last ~7 days."  |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+