تحليل الجدول
ينطبق على: Databricks SQL Databricks Runtime
ANALYZE TABLE
تجمع العبارة إحصائيات مقدرة حول جدول معين أو جميع الجداول في مخطط محدد.
يتم استخدام هذه الإحصائيات من قبل محسن الاستعلام لإنشاء خطة استعلام مثالية.
نظرا لأنها يمكن أن تصبح قديمة مع تغير البيانات، لا يتم استخدام هذه الإحصائيات للإجابة على الاستعلامات مباشرة.
لا تزال الإحصائيات القديمة مفيدة لمحسن الاستعلام عند إنشاء خطة استعلام.
بناء الجملة
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 ]
المعلمات
-
يحدد الجدول الذي سيتم تحليله. يجب ألا يتضمن الاسم مواصفات أو مسارا زمنيا. إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .
-
اختياريا يقيد الأمر إلى مجموعة فرعية من الأقسام.
هذه العبارة غير معتمدة لجداول Delta Lake.
DELTA
ينطبق على: Databricks SQL Databricks Runtime 14.3 LTS وما فوق
إعادة حساب الإحصائيات المخزنة في سجل Delta للأعمدة المكونة لمجموعة الإحصائيات في جدول Delta.
DELTA
عند تحديد الكلمة الأساسية، لا يتم جمع الإحصائيات العادية لمحسن الاستعلام.توصي Databricks بالتشغيل
ANALYZE TABLE table_name COMPUTE DELTA STATISTICS
بعد تعيين أعمدة جديدة لتخطي البيانات لتحديث الإحصائيات لجميع الصفوف في جدول. للحصول على الأداء الأمثل، قم بتشغيلANALYZE TABLE table_name COMPUTE STATISTICS
لتحديث خطة الاستعلام بعد اكتمال تحديث سجل Delta.[ NOSCAN | للحصول على عمود الأعمدة [، ...] | لجميع الأعمدة ]
إذا لم يتم تحديد خيار تحليل،
ANALYZE TABLE
يجمع عدد الصفوف والحجم في الجدول بالبايت.NOSCAN
جمع حجم الجدول بالبايت فقط (الذي لا يتطلب مسح الجدول بأكمله).
للحصول على عمود الأعمدة [، ...] | لكافة الأعمدة
جمع إحصائيات الأعمدة لكل عمود محدد، أو بدلا من ذلك لكل عمود، بالإضافة إلى إحصائيات الجدول.
إحصائيات العمود غير معتمدة مع
PARTITION
عبارة .
{ FROM
|
IN } schema_nameتحديد اسم المخطط الذي سيتم تحليله. بدون اسم مخطط،
ANALYZE TABLES
يجمع كافة الجداول في المخطط الحالي الذي يمتلك المستخدم الحالي الإذن لتحليله.
الأمثلة
> 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;