ANALYZE TABLE
S’applique à : Databricks SQL Databricks Runtime
L’instruction ANALYZE TABLE
collecte des statistiques estimées sur une table spécifique ou toutes les tables d’un schéma donné. 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 exécute automatiquement les ANALYZE
tables gérées par le catalogue ON Unity. 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.
Important
L’optimisation prédictive avec ANALYZE
est en préversion publique. Il inclut la collecte intelligente des statistiques pendant les écritures. Utilisez ce formulaire pour vous inscrire à la préversion publique.
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 génère une erreur TABLE_OR_VIEW_NOT_FOUND.
-
Limite éventuellement la commande à un sous-ensemble de partitions.
Cette clause est uniquement prise en charge pour les tables Delta Lake.
DELTA
S’applique à : Databricks SQL Databricks Runtime 14.3 LTS et versions ultérieures
Recalcule 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é
DELTA
est 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 STATISTICS
après avoir défini de nouvelles colonnes pour ignorer les données, afin de mettre à jour les statistiques pour toutes les lignes d’une table. Pour optimiser les performances, exécutezANALYZE TABLE table_name COMPUTE STATISTICS
afin de mettre à jour le plan de requête une fois la mise à jour du journal Delta terminée.[ NOSCAN | FOR COLUMNS col [, …] | FOR ALL COLUMNS ]
Si aucune option d’analyse n’est spécifiée,
ANALYZE TABLE
collecte le nombre de lignes et la taille de la table en octets.NOSCAN
Collecte uniquement la taille de la table en octets (ce qui ne nécessite pas l’analyse de la table entière).
FOR COLUMNS col [, …] | FOR ALL 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 TABLES
collecte 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;