【ORACLE】表の統計情報を取得するSQL

ここではORACLEデータベースで、テーブルの統計情報をSQLで簡単に取得する方法を紹介します。

テーブルの統計情報の取得方法

テーブルの統計情報を取得するには、DBMS_STATSという既存のパッケージのGATHER_TABLE_STATSというプロシージャを起動します。

起動するときに、オーナー名とテーブル名を指定します。

begin
 DBMS_STATS.GATHER_TABLE_STATS(
    OWNNAME =>'user1'
    ,TABNAME=>'table1'
 );
end;

統計情報の取得をパラレル実行したい場合

テーブルのレコード件数が多くなればなるほど、統計情報を取得する時間は長くなります。

リソースに余裕があれば、統計情報の取得をORACLEのパラレル実行で簡単に速く、時間を短縮することが出来ます。

先ほどのオーナー名、テーブル名に加えて、パラレル実行数を引数にプロシージャーを実行します。次のサンプルでは、4多重で実行するように指示しています。

begin
 DBMS_STATS.GATHER_TABLE_STATS(
    OWNNAME =>'user1'
    ,TABNAME=>'table1'
    ,DEGREE =>4 --パラレル実行数
 );
end;

テーブルの統計情報の取得日を確認する方法

テーブルの統計情報が取得された日付は記録されており、SQLで簡単に取得できます。詳しくは「【SQL】ORACLE表の統計情報取得日を確認する方法」で解説しているのでぜひ参考にしてください。

最後に

最後までお読みいただきありがとうございます。

当サイトではSQLのチューニングについても紹介しています。
詳しくは「SELECT文のSQLチューニング方法まとめ」で解説していますので、ぜひ参考にしてください。