Catégories :

Fonctions système (Informations système)

SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS

Renvoie les coûts estimés de l’ajout de l”optimisation de la recherche à une table donnée et de la configuration de colonnes spécifiques pour l’optimisation de la recherche.

Important

Les valeurs renvoyées par la fonction SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS sont des estimations au mieux basées sur l’échantillonnage d’un ensemble de données partiel dans la table. Les coûts estimés peuvent varier considérablement (jusqu’à 50 % ou, dans de rares cas, de plusieurs fois) par rapport aux coûts réels réalisés.

Syntaxe

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

Arguments

table_name

Table pour laquelle vous souhaitez estimer les coûts d’optimisation de la recherche.

Si le nom de la table n’est pas complet (sous la forme db_name.schema_name.table_name ou schema_name.table_name), la fonction recherche la table dans le schéma actuel de la session.

Notez que le nom entier doit être entre guillemets simples.

search_method_with_target

Spécifie une méthode de recherche et une cible pour une configuration de colonne.

Sortie

La fonction renvoie un objet JSON avec les propriétés décrites ci-dessous :

Propriété

Description

tableName

Nom de la table.

searchOptimizationEnabled

true si la propriété d’optimisation de la recherche est définie pour la table ; false sinon.

costPositions

Tableau d’objets décrivant les coûts prévus de l’ajout d’une optimisation de la recherche à la table.

Chaque objet du tableau costPositions représente un type différent d’estimation des coûts :

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

La propriété name identifie le type de coût représenté par l’objet. name peut être l’un des suivants :

name d’objet dans costPositions

Description

BuildCosts

Cet objet décrit les coûts prévus de création du chemin d’accès de recherche pour la table. Si l’optimisation de la recherche a déjà été ajoutée à la table, cet objet ne contient aucune information de coût.

StorageCosts

Cet objet décrit la quantité prévue d’espace de stockage (en TB) nécessaire pour le chemin d’accès à la recherche pour la table. . Si l’optimisation de la recherche a déjà été ajoutée à la table, cet objet affiche la quantité d’espace actuellement utilisée par le chemin d’accès à la recherche.

Benefit

Cet objet ne contient aucune information sur les coûts pour le moment.

MaintenanceCosts

Cet objet décrit les coûts prévus de l’entretien du chemin d’accès de recherche pour la table. Si cette table a été créée récemment, cet objet ne contient aucune information de coût.

Chaque objet du tableau costPositions peut avoir les propriétés suivantes :

Propriété

Description

name

Nom qui identifie le type d’informations de coût représenté par cet objet.

costs

Objet qui décrit les coûts prévus en fonction des propriétés suivantes :

value

Montant du coût prévu.

unit

Unité de mesure du coût (par exemple, « Crédits » pour les coûts de calcul, « TB » pour les coûts de stockage, etc.).

perTimeUnit

Pour les coûts de maintenance, unité de temps couverte par le coût estimé (par exemple, "MONTH" pour le coût par mois).

computationMethod

Méthode utilisée pour estimer les coûts, si plusieurs méthodes sont disponibles.

comment

Informations supplémentaires sur le coût estimé.

Notes sur l’utilisation

  • Pour le coût de construction, cette fonction renvoie une approximation basée sur la construction de chemins d’accès de recherche pour un échantillon des données de la table spécifiée.

  • Pour le coût de maintenance, cette fonction base les estimations sur les changements récents apportés à la table (les changements d’octets dans le temps).

  • Pour pouvoir appeler la fonction, vous devez avoir un entrepôt en service. Si aucun entrepôt n’est actuellement utilisé, la fonction signale l’erreur suivante :

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

    Pour exécuter cette fonction, vous pouvez utiliser un entrepôt X-Small. La taille de l’entrepôt n’a aucun effet sur la vitesse et les performances de cette fonction.

  • Comme la fonction utilise un entrepôt, vous êtes maintenant facturé pour l’utilisation de l’entrepôt pour cette fonction.

  • L’exécution de la fonction peut durer entre 20 secondes et 10 minutes.

    Comme indiqué ci-dessus, l’utilisation d’une taille d’entrepôt plus importante n’entraîne pas une exécution plus rapide de cette fonction.

Exemples

L’exemple suivant montre les coûts estimés de l’ajout d’une optimisation de recherche à une table :

select SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITHOUT_SEARCH_OPT');

+---------------------------------------------------------------------------+
| SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITHOUT_SEARCH_OPT')     |
|---------------------------------------------------------------------------|
| {                                                                         |
|   "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." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+
Copy

L’exemple suivant montre la sortie de cette fonction pour une table qui a déjà une optimisation de recherche :

select SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITH_SEARCH_OPT');
+---------------------------------------------------------------------------+
| SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('TABLE_WITH_SEARCH_OPT')        |
|---------------------------------------------------------------------------|
| {                                                                         |
|   "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." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+
Copy