アットウィキロゴ

SE Knowledge

■Excel関数 項番作成
=MAX($B$1:B11)+1
  • 「$」列や行を固定できる


■SQLトレースの取得方法

<事前準備>
1.DBMS_MONITORパッケージをインストールする。

	SQL> conn sys/sys@xe as sysdba
	SQL> @C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\dbmsmntr.sql
	SQL> grant execute on sys.dbms_monitor to test;
	SQL> grant debug on sys.dbms_monitor to test;

2.execute.sqlでプログラム実行する前後に、トレースON/OFFするFUNCTIONを埋め込む。

	BEGIN
		DBMS_MONITOR.SESSION_TRACE_ENABLE();
		-- function call
		:v_ret := &pgName.;
		DBMS_MONITOR.SESSION_TRACE_DISABLE();
	END;

<トレース取得>
3.バッチファイルを叩く。(SR35B0101.batなど)

4.実行後、トレースファイルが生成される。

	SQL> SHOW PARAMETER USER_DUMP_DEST
	で出力先を確認

5.TKPROFユーティリティでトレースファイルを見易い形式に変換する。

	C:\oraclexe\app\oracle\admin\XE\udump>TKPROF [トレースファイル] [変換後ファイル名] EXPLAIN=[ユーザID]/[パスワード]


■Oracleキャッシュクリア
conn sys/sys as SYSDBA

    • 共有プール(SHARED POOL)をクリアする
ALTER SYSTEM FLUSH SHARED_POOL;

    • データベース・バッファ・キャッシュのクリア
ALTER SYSTEM FLUSH BUFFER_CACHE;


■オラクルでロックしているセッションを確認するSQL文
http://www.systeminfinity.co.jp/sub/tech/doc/ora8_rock_session/Rock_Session.html


■PGAメモリ使用量監視
alter session set nls_date_format='yyyy/mm/dd hh24:mi:ss';
set lin 1000
set pages 1000
set trims on
set tab off
col PROGRAM for a20
col MODULE for a20
col ACTION for a20
col SQL_TEXT for a100
col pga_used_mem for 9999.0
col pga_alloc_mem for 9999.0
col pga_max_mem for 9999.0

select sysdate,
      s.sid,
      p.program,
      p.pga_used_mem/1024/1024 as pga_used_mem,
      p.pga_alloc_mem/1024/1024 as pga_alloc_mem,
      p.pga_max_mem/1024/1024 as pga_max_mem,
      s.module,
      s.action,
      q.sql_text
from v$process p,
    v$session s,
    v$sql q
where s.username= 'UserName'
and p.addr = s.paddr
and s.sql_address = q.address
order by p.pga_used_mem
/


■UTL_FILE設定
    • UTL_FILE設定手順
    • 各自の環境で読み換えて設定してください。

    • sqlplus起動
sqlplus /nolog

    • sys権限で接続
conn sys/<password>@xe as sysdba

    • UTL_FILEのインストール
@C:\oraclexe\app\oracle\product\10.2.0\server\RDBMS\ADMIN\UTLFILE.sql

    • ファイルディレクトリの設定
ALTER SYSTEM SET
 UTL_FILE_DIR='任意のPath1','任意のPath2'
SCOPE = SPFILE ;

    • DBインスタンスの再起動
    • 管理ツール - サービス「OracleServiceXE」を再起動



    • sqlplus起動
sqlplus /nolog

    • sys権限で接続
conn sys/<password>@xe as sysdba

    • ファイルディレクトリの設定確認
SELECT NAME, VALUE FROM V$PARAMETER2 WHERE NAME='utl_file_dir' ;

    • ディレクトリオブジェクトの作成
    • DIRECTORY の作成には、CREATE DIRECTORY 権限 が必要。
CREATE DIRECTORY recv_area AS '任意のPath1'; -- recv_areaは任意名称
CREATE DIRECTORY send_area AS '任意のPath2'; -- send_areaは任意名称

    • ディレクトリへのアクセス権の設定
    • 読み込み権限と書き込み権限は個別に行なう。
GRANT READ ON DIRECTORY recv_area TO <user_name> ;
GRANT WRITE ON DIRECTORY send_area TO <user_name> ;

    • 確認
SELECT * FROM ALL_DIRECTORIES ;

    • 実行&デバッグ権限付与
GRANT EXECUTE ON SYS.UTL_FILE TO <username>;
GRANT DEBUG ON SYS.UTL_FILE TO <username>;
最終更新:2009年07月29日 15:15