9. SQL> conn / as sysdba
接続されました。
SQL> select SYS_CONTEXT('USERENV','CURRENT_SCHEMA') CURRENT_SCHEMA
2 from dual;
CURRENT_SCHEMA
--------------
SYS
SQL> alter session set CURRENT_SCHEMA = SCOTT;
セッションが変更されました。
SQL> select SYS_CONTEXT('USERENV','CURRENT_SCHEMA') CURRENT_SCHEMA
2 from dual;
CURRENT_SCHEMA
--------------
SCOTT
SQL> show user
ユーザーは"SYS"です。
10. SQL> create table TEST (
2 ID number
3 );
表が作成されました。
SQL> select OWNER,TABLE_NAME from DBA_TABLES
2 where TABLE_NAME = 'TEST';
OWNER TABLE_NAME
------ -----------
SCOTT TEST
12. SQL> DECLARE
2 TYPE tbl_ins IS TABLE OF TEST%ROWTYPE INDEX BY PLS_INTEGER;
3 w_ins tbl_ins;
4 BEGIN
5 FOR i IN 1..100000 LOOP
6 w_ins(i).ID := i;
7 END LOOP;
8
9 FORALL i IN 1..100000 insert into TEST values w_ins(i);
10 commit;
11 END;
12 /
PL/SQLプロシージャが正常に完了しました。
SQL> select count(*) from TEST;
COUNT(*)
----------
100000
例:10万件を一括インサート
14. SQL> select name, value from v$diag_info;
NAME VALUE
--------------------- ------------------------------------------------------------
Diag Enabled TRUE
ADR Base /u01/app/oracle
ADR Home /u01/app/oracle/diag/rdbms/orcl/orcl
Diag Trace /u01/app/oracle/diag/rdbms/orcl/orcl/trace
Diag Alert /u01/app/oracle/diag/rdbms/orcl/orcl/alert
Diag Incident /u01/app/oracle/diag/rdbms/orcl/orcl/incident
Diag Cdump /u01/app/oracle/diag/rdbms/orcl/orcl/cdump
Health Monitor /u01/app/oracle/diag/rdbms/orcl/orcl/hm
Default Trace File /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2231.trc
Active Problem Count 3
Active Incident Count 5
11行が選択されました。
SQL> alter session set tracefile_identifier = 'SQLTRC';
セッションが変更されました。
SQL> select name, value from v$diag_info
2 where NAME = 'Default Trace File';
NAME VALUE
--------------------- -------------------------------------------------------------------
Default Trace File /u01/app/oracle/diag/rdbms/orcl/orcl/trace/orcl_ora_2231_SQLTRC.trc
トレースファイル出力場所・名称
15. SQL> alter system set events '10046 trace name context forever,level 12';
システムが変更されました。
SQL> alter system set events '10046 trace name context off';
システムが変更されました。
トレース有効化・無効化
SQL> alter session set events '10046 trace name context forever,level 12';
システムが変更されました。
SQL> alter session set events '10046 trace name context off';
システムが変更されました。
インスタンス単位
セッション単位
c.f. DBMS_SESSION or DBMS_MONITOR(SQLトレース)
16. SQLトレース(10046)
レベル 説明
0 無効
1 alter session set SQL_TRACE = TRUE と同じ
4 バインド変数値を含む
8 待機イベント情報を含む
12 バインド変数値+待機イベント情報
18. SQL> set serveroutput on
SQL> DECLARE
2 err_msg LONG;
3 err_cod PLS_INTEGER;
4 i PLS_INTEGER;
5 BEGIN
6 FOR err_cod IN 10000..10999 LOOP
7 i := UTL_LMS.GET_MESSAGE (err_cod, 'rdbms',
'ora', 'japanese', err_msg);
8 IF err_msg not like 'Message%not found%' THEN
9 DBMS_OUTPUT.PUT_LINE (TO_CHAR (err_cod,
'FM00000') || ': ' || err_msg);
10 END IF;
11 END LOOP;
12 END;
13 /
イベント一覧取得要領
19. 10000: control file debug event, name 'control_file'
10001: control file crash event1
10002: control file crash event2
10003: control file crash event3
10004: block recovery testing - internal error
………………
10045: free list update operations - ktsrsp, ktsunl
10046: enable SQL statement timing
10047: trace switching of sessions
………………
10052: don't clean up obj$
10053: CBO Enable optimizer trace
10054: CBO Enable optimizer trace for recursive statement (RPI)
………………
10995: general event for materialized views
10997: another startup/shutdown operation of this instance
inprogress
10998: event to enable short stack dumps in system state dumps
10999: do not get database enqueue name
イベント一覧(抜粋)
22. 1. ALTER SYSTEM DUMP DATAFILE <データファイルNo.> BLOCK <ブロック
No.>;
2. ALTER SYSTEM DUMP DATAFILE <FNO> BLOCK MIN <開始ブロックNo.>
BLOCK MAX <終了ブロックNo.>;
結果はDiag Trace(10g以前はUSER_DUMP_DEST)に出力される。
(データ・)ブロック・ダンプ取得方
法