تحليل الجدول

ينطبق على:وضع علامة 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 ]

المعلمات

  • table_name

    يحدد الجدول الذي سيتم تحليله. يجب ألا يتضمن الاسم مواصفات أو مسارا زمنيا. إذا تعذر العثور على الجدول، فإن Azure Databricks يثير خطأ TABLE_OR_VIEW_NOT_FOUND .

  • عبارة PARTITION

    اختياريا يقيد الأمر إلى مجموعة فرعية من الأقسام.

    هذه العبارة غير معتمدة لجداول 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;