
direct path write - 日本エクセム株式会社 Oracle待機イベント情報
目次[非表示]
- 1.基本情報
- 2.待機パラメータと待機時間
基本情報
direct path write待機イベントは、セッションPGA内部のバッファからデータファイルとして記録する場合に発生します。セッションは、多数のdirect writeを要求された後、処理を進行します。セッションが、I/O処理が完了したと認知した時点でdirect path write待機イベントを待機します。
direct path write待機はDirect load処理(CTAS:Create Table As Select、insert / * + append * / …など)が発生することを意味します。これらの操作が要求される場合、OracleはSGAを経由せずにデータファイルに直接書き込みを行います。つまり、DBWRによって書き込みが行われるのではなく、サーバー・プロセスによって直接書き込み操作が行われるのです。 CTAS(Create Table As Select)やInsert / * + append * /、DirectモードでSQL * Loaderを実行すると、direct load操作が実行されます。これらの作業は、次のような特徴を持ちます。
Direct loadタスクを適切に使用すると、大容量のデータを高速で生成することができます。 DirectモードとParallelモードを並行して実行することにより、性能をさらに最大化することができるのです。 PCTAS(Parallel CTAS)、Insert / * + paralle append * /やdirect parallelモードでSQL * Loaderを実行することが代表的な例となります。 Parallelモードでデータが生成される場合、Oracleは、次のような方法で使用します。
Directモードである場合には、データが直接テーブルのセグメントに記録されますが、Parallelモードと並行されている場合には、一旦、テーブルのセグメントが属する永続表スペース(Permanent Tablespace)内の一時セグメント(Temporary Segment)に直接記録し、すべての操作が正常に終了した後、テーブルのセグメントにマージされることに注意してください。
Direct loadタスクを実行する際に発生するdirect path write待機は必然的なもので、待機の発生自体を減らすことはできません。もしdirect path writeイベントの平均待機時間が過度に高く出た場合、ファイルシステム自体の性能に問題があると判断することができます。
非同期I/Oが使用される場合には、direct path write待機イベントの待機回数と待機時間は誤解を招く可能性があります。
キャッシュされていないLOBセグメントに、書き込みI / O操作時に発生するdirect path write待機イベントは、Oracle 8.1.7からdirect path write(lob)待機イベントで別々に区分されます。
待機パラメータと待機時間
待機パラメータ
direct path write待機イベントの待機パラメータは以下の通りです。
待機時間
I/O関連のイベントなので、タイムアウトが発生せず、I/Oが完了するまでにかかった時間を示します。