検索


Recently Entry


©
2017 / 9 / 4

Oracle DBでパーティションテーブルの統計情報の取得状況を確認する方法


Oracle DBにおいてパーティションで分割されたテーブルの統計情報の取得情報を確認する方法を調べてみました。

環境

  • Oracle DB 11g Enterprise Edition

確認方法

各パーティションの統計情報取得日時は下記のSQLから取得できます。

-- PARTITION_NAME:パーティション名、LAST_ANALYZED:統計情報を取得した日時(取得していなければNULL)
SELECT TABLE_NAME, PARTITION_NAME, LAST_ANALYZED
FROM ALL_TAB_PARTITIONS
WHERE TABLE_NAME = '<確認したいテーブル名>';

なお、パーティション分割されたテーブルの統計情報収集の方法は2つあり、上記はパーティションレベルで統計情報を収集した際の確認方法になります。

(もう1つは、表レベルで統計情報を収集する方法があります。)

これらの違いは”GLOBAL_STATS”カラムの値で確認することができます。

-- GLOBAL_STATSが"YES"ならパーティション単位で統計情報が収集されている
SELECT TABLE_NAME, PARTITION_NAME, GLOBAL_STATS
FROM ALL_TAB_PARTITIONS
WHERE TABLE_NAME = '<確認したいテーブル名>';

-- GLOBAL_STATSがYESなら表レベルで統計情報が収集されている。
SELECT TABLE_NAME, GLOBAL_STATS
FROM ALL_TABLES
WHERE TABLE_NAME = '<確認したいテーブル名>';
Categories:  未分類