【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;
    

【Oracle】パスワードの有効期限

VMwareにOracle11gをインストールしているのですが、
久しぶりにsqlplusにログインしたところ以下のエラーが発生しました。

ERROR:
ORA-28002: the password will expire within 7 days

Oracle10gまではパスワードは無期限でしたが、
Oracle11gからはパスワードの有効期限があるようです。
パスワードの期限を無期限に変更し、
パスワードを再設定します。

sqlplusに管理者権限を持つユーザかsysユーザでログインします。

sqlplus sys/管理者パスワード as sysdba

以下のSQLを実行します。

alter profile default limit password_life_time unlimited;
alter user ユーザ名 identified by "パスワード";

パスワードはダブルクォーテーションで括らないとエラーになります。
記号の区別がつかないためと思われます。