Kategorien:

Systemfunktionen (Systeminformationen)

SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS

Gibt die geschätzten Kosten zurück, die mit der Aktivierung von Automatic Clustering für eine Tabelle verbunden sind. Diese Funktion wird für Folgendes verwendet:

  • Schätzen der Kosten für das erstmalige Clustering einer Tabelle.

  • Schätzen für Kosten für die Änderung des Gruppierungsschlüssels einer Tabelle.

  • Wenn möglich, Abschätzen der Kosten, die mit der Wartung der Tabelle verbunden sind, nachdem sie um den angegebenen Schlüssel geclustert wurde. Manchmal benötigt eine Tabelle mehr DML-Verlauf, um die zukünftigen Kosten für die Wartung abzuschätzen.

Wichtig

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

Syntax

SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS( '<table_name>' ,
 [ '( <expr1> [ , <expr2> ... ] )' ] )
Copy

Argumente

table_name

Name der Tabelle, für die Sie die geschätzten Clustering-Kosten zurückgeben möchten.

(expr1 [ , expr2 ... ])

Der vorgeschlagene Gruppierungsschlüssel für die Tabelle ist, wo jeder Ausdruck in eine Tabellenspalte aufgelöst wird. Die Funktion schätzt die Kosten für das Clustering der Tabelle unter Verwendung dieser Spalten als Gruppierungsschlüssel.

Auch wenn nur ein Spaltenname oder Ausdruck übergeben wird, muss dieser in Klammern gesetzt sein.

Dieses Argument ist für eine Tabelle ohne Gruppierungsschlüssel erforderlich. Ein Fehler wird zurückgegeben, wenn das Argument nicht angegeben wird.

Dieses Argument ist optional für eine Tabelle mit einem Gruppierungsschlüssel. Wenn das Argument weggelassen wird, schätzt die Funktion die Kosten für das Clustering der Tabelle unter Verwendung des aktuellen Gruppierungsschlüssels der Tabelle.

Rückgabewerte

Gibt einen Wert vom Typ VARCHAR zurück. Die zurückgegebene Zeichenfolge ist im JSON-Format und enthält die folgenden Name/Wert-Paare:

warning

Zeigt an, ob Bedingungen die Genauigkeit der Kostenschätzung oder die Auswirkungen der Wahl eines Gruppierungsschlüssels beeinflussen könnten.

reportTime

Datum, an dem die Ausgabe der Funktion erzeugt wurde.

clusteringKey

Spalten, aus denen sich der Gruppierungsschlüssel zusammensetzt.

initial

Beschreibt die voraussichtlichen Kosten für das Clustering der Tabelle um den angegebenen Gruppierungsschlüssel. Die geschätzten Kosten für die Wartung der Tabelle, sobald sie geclustert ist, sind nicht enthalten. Das initial JSON-Objekt enthält die folgenden Name/Wert-Paare.

unit

Gibt die Einheiten an, in denen die anfänglichen Kosten ausgedrückt werden.

value

Gibt die Kosten für das Clustering der Tabelle an, ausgedrückt in unit.

comment

Interpretiert die anfänglichen Clustering-Kosten.

maintenance

Beschreibt die voraussichtlichen Kosten für die Wartung einer gut geclusterten Tabelle, nachdem sie erstmalig geclustert wurde. Diese Vorhersage basiert auf der jüngsten DML-Aktivität, denn eine Tabelle wird neu geclustert, wenn sie sich ändert.

Ein leeres Objekt zeigt an, dass die Tabelle oder eine der Gruppierungsschlüsselspalten neu ist. Das bedeutet, dass die Funktion mehr historische Daten über die DML-Operationen benötigt, um die Wartungskosten abzuschätzen.

unit

Gibt die Einheiten an, in denen die Kosten ausgedrückt werden.

value

Gibt an, wie viel die Wartung der Tabelle nach dem ersten Clustering kosten wird, ausgedrückt in units pro Tag.

comment

Enthält den Zeitraum, in dem Kosten anfallen, und den Zeitrahmen, auf dem die Schätzung basiert.

Anforderungen an die Zugriffssteuerung

Die Berechtigungen, die für die Schätzung der Kosten erforderlich sind, entsprechen denen, die zum Lesen der Tabelle und zum Ändern des Gruppierungsschlüssels erforderlich sind. Sie benötigen die folgenden Berechtigungen:

  • SELECT- und INSERT-Berechtigungen für die, oder OWNERSHIP-Berechtigung für die Tabelle.

  • USAGE- oder OWNERSHIP-Berechtigung für das übergeordnete Schema und die übergeordnete Datenbank.

Nutzungshinweise

  • Die Kostenschätzungen, die von der Funktion SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS zurückgegeben werden, basieren auf einer Stichprobe einer Teilmenge von Mikropartitionen aus Ihrer Tabelle und der Erfassung der Clustering-Ausführungszeit. Je nach den untersuchten spezifischen Mikropartitionen und der Systemgeschwindigkeit können die Kostenschätzungen zwischen den Ausführungen der Funktionen abweichen.

  • Um die bestmögliche Präzision zu erzielen, können Sie SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS mehrmals ausführen und den Durchschnitt der Ergebnisse ermitteln. Die Funktion verwendet Beispiele für Clustering-Jobs und erfasst deren Ausführungszeit. Die angegebenen Kosten können abhängig von der Systemgeschwindigkeit schwanken. Wenn Sie die Funktion mehrmals ausführen und den Durchschnitt der Ergebnisse bilden, können Sie eine genauere Kostenschätzung vornehmen.

  • Der häufigste Grund für eine ungenaue Schätzung der Wartungskosten ist, dass die DML-Muster der Vergangenheit, die der Schätzung zugrunde liegen, nicht mit den DML-Mustern der Zukunft übereinstimmen.

Beispiele

Geben Sie die geschätzten Kosten zurück, die mit der Definition der Spalte tenantId als Gruppierungsschlüssel für die Tabelle myTable verbunden sind.

SELECT SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS('myTable', '(tenantId)');
Copy
{
  "reportTime": "Fri, 12 Jul 2024 01:06:18 GMT",
  "clusteringKey": "LINEAR(tenantId)",
  "initial": {
    "unit": "Credits",
    "value": 98.197987412,
    "comment": "Total upper bound of one time cost"
  },
  "maintenance": {
    "unit": "Credits",
    "value": 10.0,
    "comment": "Daily maintenance cost estimate provided based on DML history from the
    past seven days."
  }
}