【Oracle】統計情報に関するSQL

統計情報に関するSQLのメモです。

  • テーブルの統計情報を取得

    EXEC DBMS_STATS.GATHER_TABLE_STATS('スキーマ名', 'テーブル名');
    
  • インデックスの統計情報を取得

    EXEC DBMS_STATS.GATHER_INDEX_STATS('スキーマ名', 'インデックス名');
    
  • テーブルの統計情報の状態確認

    SELECT UT.TABLE_NAME, UT.NUM_ROWS, UT.BLOCKS, UT.AVG_ROW_LEN, UT.SAMPLE_SIZE, UT.LAST_ANALYZED FROM USER_TABLES UT WHERE UT.TABLE_NAME NOT IN ('CHAINED_ROWS', 'CREATE$JAVA$LOB$TABLE', 'EXCEPTIONS', 'PLAN_TABLE', 'PROF$PLAN_TABLE') AND UT.TABLE_NAME NOT LIKE 'BIN$%' ORDER BY UT.TABLE_NAME; 
    
  • インデックスの統計情報の状態確認

    SELECT UI.TABLE_NAME, UI.INDEX_NAME, UI.NUM_ROWS, UI.SAMPLE_SIZE, UI.LAST_ANALYZED, UI.STATUS FROM USER_INDEXES UI WHERE UI.TABLE_NAME NOT IN ('CHAINED_ROWS', 'CREATE$JAVA$LOB$TABLE', 'EXCEPTIONS', 'PLAN_TABLE', 'PROF$PLAN_TABLE') AND UI.TABLE_NAME NOT LIKE 'BIN$%' ORDER BY UI.TABLE_NAME, UI.INDEX_NAME;