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.

Syntaxe

SYSTEM$ESTIMATE_SEARCH_OPTIMIZATION_COSTS('<table_name>')

Arguments

nom_table

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 nom_bd.nom_schéma.nom_table ou nom_schéma.nom_table), la fonction recherche la table dans le schéma actuel de la session.

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

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

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 limite supérieure estimée pour le coût. Le coût réel pourrait être inférieur.

  • 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).

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" : "EstimatedUpperBound"                           |
|   }, {                                                                    |
|     "name" : "StorageCosts",                                              |
|     "costs" : {                                                           |
|       "value" : 0.070493,                                                 |
|       "unit" : "TB"                                                       |
|     },                                                                    |
|     "computationMethod" : "EstimatedUpperBound"                           |
|   }, {                                                                    |
|     "name" : "MaintenanceCosts",                                          |
|     "costs" : {                                                           |
|       "value" : 30.296,                                                   |
|       "unit" : "Credits",                                                 |
|       "perTimeUnit" : "MONTH"                                             |
|     },                                                                    |
|     "computationMethod" : "EstimatedUpperBound",                          |
|     "comment" : "Estimated from historic change rate over last ~11 days." |
|   } ]                                                                     |
| }                                                                         |
+---------------------------------------------------------------------------+

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