はじめに
一般的にデータベースは統計情報を取得することで、オプティマイザが実行計画を立てる際に役立ちます。Verticaも同様に、統計情報を取得することが推奨されます。
この記事では、統計情報が最後に取得されたのがいつかを調べる方法を紹介します。
統計情報が取得されたタイムスタンプの確認
統計情報が最後に取得されたのはいつかを調べるには、以下のSQLを実行します。
1 2 3 4 5 6 7 8 9 10 |
SELECT table_schema, table_name, projection_name, projection_column_name, statistics_type, statistics_updated_timestamp FROM projection_columns ORDER BY table_name, statistics_updated_timestamp; |
(実行例)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
table_schema | table_name | projection_name | projection_column_name | statistics_type | statistics_updated_timestamp --------------+------------+-------------------------+------------------------+-----------------+------------------------------- public | customer | customer_DBD_1_rep_test | c_custkey | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_address | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_city | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_nation | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_region | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_mktsegment | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_phone | FULL | 2018-10-11 10:43:21.743208+09 public | customer | customer_DBD_1_rep_test | c_name | FULL | 2018-10-11 10:43:21.743208+09 public | part | part_super | p_mfgr | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | part | part_super | p_name | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | part | part_super | p_category | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | part | part_super | p_brand1 | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | part | part_super | p_color | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | part | part_super | p_type | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | part | part_super | p_size | ROWCOUNT | 2018-10-09 18:38:12.030208+09 public | t1 | t1_super | col1 | NONE | |
以下の3つの列に着目します。
table_name
テーブル名
statistics_type
統計情報のタイプ
statistics_updated_timestamp
最後に統計情報が取得されたタイムスタンプ
テーブル名
statistics_type
統計情報のタイプ
statistics_updated_timestamp
最後に統計情報が取得されたタイムスタンプ
statistics_typeに表示される値は3種類です。
それぞれの意味を以下に記載します。
FULL
ANALYZE_STATISTICSで取得されたフルに取得された状態。
行数以外にデータのサンプル解析、ストレージ使用量などを取得します。
ROWCOUNT
自動的に行数だけ取得された簡易的な状態。
ANALYZE_STATISTICSで統計情報を取得した方が良い。
NONE
統計情報が取得されていない状態。
テーブルを作成後にデータをロードした直後の状態。
ANALYZE_STATISTICSで取得されたフルに取得された状態。
行数以外にデータのサンプル解析、ストレージ使用量などを取得します。
ROWCOUNT
自動的に行数だけ取得された簡易的な状態。
ANALYZE_STATISTICSで統計情報を取得した方が良い。
NONE
統計情報が取得されていない状態。
テーブルを作成後にデータをロードした直後の状態。
参考情報
統計情報を取得するタイミングや、取得方法については以下の記事をご参照ください。手動で統計情報を取得する方法