- 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> ... ] )' ] )
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)');
{
"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."
}
}