Catégories :

Fonctions système (Informations système)

SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS

Renvoie les coûts estimés associés à l’activation du clustering automatique pour une table. Cette fonction est utilisée pour les opérations suivantes :

  • Estimer le coût du clustering d’une table pour la première fois.

  • Estimer le coût de la modification de la clé de cluster d’une table.

  • Estimer, lorsque cela est possible, le coût associé à la maintenance de la table après son regroupement autour de la clé spécifiée. Parfois, une table peut avoir besoin de plus d’historique DML pour estimer les coûts de maintenance futurs.

Important

Les estimations de coûts renvoyées par la fonction SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS sont les meilleurs efforts possibles. Les coûts réels réalisés peuvent varier considérablement (jusqu’à 100 % ou, dans de rares cas, de plusieurs fois) par rapport aux coûts estimés.

Syntaxe

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

Arguments

table_name

Nom de la table pour laquelle vous souhaitez renvoyer le coût estimé du clustering.

(expr1 [ , expr2 ... ])

La clé de cluster proposée pour la table est l’endroit où chaque expression se résout en une colonne de table. La fonction estime le coût du clustering de la table en utilisant ces colonnes comme clé de cluster.

Même si un seul nom de colonne ou une seule expression est transmis(e), il/elle doit être entre parenthèses.

Cet argument est requis pour une table sans clé de clustering. Une erreur est renvoyée si l’argument est omis.

Cet argument est facultatif pour une table avec une clé de clustering. Si l’argument est omis, la fonction estime le coût du clustering de la table à l’aide de la clé de clustering actuelle de la table.

Renvoie

Une valeur de type VARCHAR. La chaîne renvoyée est au format JSON et contient les paires nom/valeur suivantes :

warning

Indique si les conditions peuvent affecter la précision de l’estimation des coûts ou l’impact du choix d’une clé de cluster.

reportTime

Date à laquelle la sortie de la fonction a été générée.

clusteringKey

Colonnes qui composent la clé du cluster.

initial

Décrit le coût prévu du clustering de la table autour de la clé de cluster spécifiée. Le coût estimé de maintenance de la table une fois qu’elle est groupée n’est pas inclus. L’objet initial JSON contient les paires nom/valeur suivantes.

unit

Indique les unités dans lesquelles le coût initial est exprimé.

value

Indique le coût de regroupement de la table, exprimé en unit.

comment

Interprète le coût initial du clustering.

maintenance

Décrit les coûts prévus pour maintenir une table bien groupée après son regroupement initial. Cette prédiction est basée sur des données récentes d’activité DML car une table est regroupée à mesure qu’elle change.

Un objet vide indique que la table ou l’une des colonnes clés du cluster est nouvelle. Cela signifie que la fonction a besoin de plus de données historiques sur les opérations DML pour estimer les coûts de maintenance.

unit

Indique les unités dans lesquelles le coût est exprimé.

value

Indique combien il en coûtera pour maintenir la table après son clustering initial, exprimé en units par jour.

comment

Comprend la période génératrice de coûts et le délai sur lequel l’estimation est basée.

Exigences en matière de contrôle d’accès

Les privilèges nécessaires pour estimer les coûts sont les mêmes que ceux requis pour lire la table et modifier la clé du cluster. Vous avez besoin des privilèges suivants :

  • Privilèges SELECT et INSERT sur la table, ou privilège OWNERSHIP sur la table.

  • Privilège USAGE ou OWNERSHIP sur le schéma parent et la base de données.

Notes sur l’utilisation

  • Les estimations de coûts renvoyées par la fonction SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS sont basées sur l’échantillonnage d’un sous-ensemble de micro-partitions de votre table et sur la capture du temps d’exécution du clustering. En fonction des micro-partitions spécifiques échantillonnées et de la vitesse du système, les estimations de coûts peuvent différer entre les exécutions de fonction.

  • Pour une précision optimale, vous pouvez exécuter SYSTEM$ESTIMATE_AUTOMATIC_CLUSTERING_COSTS plusieurs fois et faites la moyenne des résultats. La fonction utilise des exemples de tâches de clustering et collecte leur temps d’exécution. L’estimation des coûts fournie peut fluctuer en fonction de la vitesse du système. L’exécution de la fonction plusieurs fois et la moyenne des résultats peuvent produire une estimation des coûts plus précise.

  • La raison la plus courante d’une estimation inexacte des coûts de maintenance est que les modèles DML antérieurs basés sur l’estimation ne correspondaient pas aux modèles DML futurs.

Exemples

Renvoyer les coûts estimés associés à la définition de la colonne tenantId comme clé de cluster pour la table myTable.

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."
  }
}