Tihiroのストレスフリーな生活

少しだけ頭使って後は根性

Oracleメモ

概要

メモです。

環境は

メモ

ユーザーテーブルの表示

SELECT * FROM user_tables

ビューの表示

SELECT * FROM user_views

クリエイト文などの取得

SELECT dbms_metadata.get_ddl('TABLE','テーブル名', 'スキーマ名') FROM dual;

制約を確認

SELECT * FROM user_constraints

制約が設定されている列

USER_CONS_COLUMNS 

主キー確認

SELECT
    user_constraints.table_name
  , column_name
FROM
  user_cons_columns
    INNER JOIN user_constraints USING (constraint_name)
WHERE
  constraint_type = 'P';

表領域の情報

SELECT * FROM dba_tablespaces

データファイルの情報

SELECT * FROM dba_data_files

トレースログの上限

show MAX_DUMP_FILE_SIZE

初期化パラメータの確認

SELECT * FROM V$PARAMETER;
SELECT * FROM V$PARAMETER2;

SPFILEに設定されているパラメータの確認

SELECT * FROM V$SPPARAMETER

現在のインスタンスのパラメータの確認

SELECT * FROM V$SYSTEM_PARAMETER;
SELECT * FROM V$SYSTEM_PARAMETER2;

現在のSCNを確認する

SELECT 
  dbms_flashback.get_system_change_number
FROM
  dual

フラッシュバック問合せ

SELECT * FROM dual AS OF SCN (SCN番号);
SELECT * FROM dual AS OF TIMESTAMP to_timestamp(日付);

表領域のオフライン

ALTER TABLESPACE USERS OFFLINE;

一時データファイルのオフライン

ALTER DATABASE TEMPFILE "ファイルのパス+ファイル名" OFFLINE

一時表領域の縮小(11g)

ALTER TABLESPACE "一時表領域名" SHRINK SPACE KEEP "空けたいサイズ"

実行計画の保存場所

PLAN_TABLEテーブル

PLAN_TABLEテーブルの作成

@$ORACLE_HOME/rdbms/admin/catplan.sql
@$ORACLE_HOME/rdbms/admin/utlxplan.sql

※違いは?

実行計画を取得する。

EXPLAIN PLAN FOR SELECT * FROM dual;

自動的に実行計画を表示する

SET AUTOTRACE ON EXP

統計情報 関連

DBMS_STATSパッケージ

統計情報の取得

DMMS_STATS.GET_TABLE_STATSとか ※自動で取得?

統計情報の最終取得時刻

SELECT last_analyzed FROM user_tables;

統計情報を戻す

exec DBMS_STATS.GATHER_INDEX_STATS(OWNNAME=>'SCOTT', INDNAME=>'PK_EMP');
exec DBMS_STATS.GATHER_TABLE_STATS(OWNNAME=>'SCOTT', TABNAME=>'EMP',ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE);

プロシージャの実行。

execute プロシージャ名(引数)

※プロシージャはロールの権限が無効になるため、実行ユーザーに適切な権限を付与しなければならない場合がある。プロシージャの中でCREATE TABLEとかしてる場合とか。

https://docs.oracle.com/cd/E49329_01/network.121/b71285/authorization.htm#i1007304

REDOログ

REDOログのスイッチ

ALTER SYSTEM SWITCH LOGFILE