Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
S’applique à :
Databricks SQL
Databricks Runtime
Utilisez l’instruction ANALYZE TABLE … COMPUTE STATISTICS pour collecter des statistiques estimées sur une table spécifique ou toutes les tables d’un schéma spécifié. Ces statistiques sont utilisées par l’optimiseur de requêtes pour générer un plan de requête optimal.
L’optimisation prédictive s’exécute ANALYZE automatiquement sur des tables gérées par le catalogue Unity pour collecter ces informations. Databricks recommande d’activer l’optimisation prédictive pour toutes les tables managées par Unity Catalog afin de simplifier la maintenance des données et de réduire les coûts de stockage. Consultez Optimisation prédictive pour les tables managées Unity Catalog.
Syntaxe
ANALYZE TABLE table_name [ PARTITION clause ]
COMPUTE [ DELTA ] STATISTICS [ NOSCAN | FOR COLUMNS col1 [, ...] | FOR ALL COLUMNS ]
ANALYZE TABLES [ { FROM | IN } schema_name ] COMPUTE STATISTICS [ NOSCAN ]
Paramètres
-
Identifie la table à analyser. Le nom ne doit pas inclure de spécification temporelle ou de spécification d’options ou de chemin d’accès. Si la table est introuvable, Azure Databricks déclenche une condition d’erreur TABLE_OR_VIEW_NOT_FOUND.
Clause PARTITION
Limite éventuellement la commande à un sous-ensemble de partitions.
Cette clause est uniquement prise en charge pour les tables Delta Lake.
DELTAS’applique à :
Databricks SQL
Databricks Runtime 14.3 LTS et versions ultérieuresRecalcule les statistiques stockées dans le journal Delta pour les colonnes configurées pour la collecte de statistiques dans une table Delta.
Lorsque le mot clé
DELTAest spécifié, les statistiques normales pour l’optimiseur de requête ne sont pas collectées.Databricks recommande d'exécuter
ANALYZE TABLE table_name COMPUTE DELTA STATISTICSaprès avoir défini de nouvelles colonnes pour le "data skipping", afin de mettre à jour les statistiques de toutes les lignes d'une table. Pour optimiser les performances, exécutezANALYZE TABLE table_name COMPUTE STATISTICSafin de mettre à jour le plan de requête une fois la mise à jour du journal Delta terminée.[ NOSCAN | FOR COLUMNS col [, ...] | POUR TOUS COLUMNS ]
Si aucune option d’analyse n’est spécifiée,
ANALYZE TABLEcollecte le nombre de lignes et de taille de la table en octets.NOSCAN
Collectez uniquement la taille de la table en octets (qui ne nécessite pas d’analyse de la table entière).
FOR COLUMNS col [, ...] | POUR TOUS COLUMNS
Collectez les statistiques de colonne pour chaque colonne spécifiée, ou une autre pour chaque colonne, ainsi que les statistiques de table.
Les statistiques de colonne ne sont pas prises en charge en combinaison avec la clause
PARTITION.
{ FROM
|IN } schema_nameSpécifie le nom du schéma à analyser. Sans nom de schéma,
ANALYZE TABLEScollecte toutes les tables du schéma actuel que l’utilisateur actuel est autorisé à analyser.
Exemples
> CREATE TABLE students (name STRING, student_id INT) PARTITIONED BY (student_id);
> INSERT INTO students PARTITION (student_id = 111111) VALUES ('Mark');
> INSERT INTO students PARTITION (student_id = 222222) VALUES ('John');
> ANALYZE TABLE students COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLE students COMPUTE STATISTICS;
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
-- Note: ANALYZE TABLE .. PARTITION is not supported for Delta tables.
> ANALYZE TABLE students PARTITION (student_id = 111111) COMPUTE STATISTICS;
> DESC EXTENDED students PARTITION (student_id = 111111);
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Partition Statistics 432 bytes, 1 rows
... ... ...
OutputFormat org.apache.hadoop...
> ANALYZE TABLE students COMPUTE STATISTICS FOR COLUMNS name;
> DESC EXTENDED students name;
info_name info_value
-------------- ----------
col_name name
data_type string
comment NULL
min NULL
max NULL
num_nulls 0
distinct_count 2
avg_col_len 4
max_col_len 4
histogram NULL
> ANALYZE TABLES IN school_schema COMPUTE STATISTICS NOSCAN;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes
... ... ...
> ANALYZE TABLES COMPUTE STATISTICS;
> DESC EXTENDED teachers;
col_name data_type comment
-------------------- -------------------- -------
name string null
teacher_id int null
... ... ...
Statistics 1382 bytes, 2 rows
... ... ...
> DESC EXTENDED students;
col_name data_type comment
-------------------- -------------------- -------
name string null
student_id int null
... ... ...
Statistics 864 bytes, 2 rows
... ... ...
> ANALYZE TABLE some_delta_table COMPUTE DELTA STATISTICS;