ITPub博客

首页 > 数据库 > Oracle > 非空闲的等待事件-direct path write

非空闲的等待事件-direct path write

原创 Oracle 作者:sharklove 时间:2007-04-12 15:34:36 0 删除 编辑

direct path write(USER I/0类)

  1. 从PGA写入数据文件,一个会话可以发布多个写入请求和连续的处理。
  2. 直接写入可以按同步或异步方式执行,取决于平台和DISK_ASYNC_IO参数的值。
  3. 通常用于在数据加载(APPEND提示、CTAS-CREATE TABLE AS SELECT)、并行DML操作时写入到临时段。
  4. 在使用异步IO时,direct path write事件产生的等待时间不准确,所以通过v$sesstat视图来获得直接写入次数来评估该事件的影响情况:

SELECT a.NAME,
b.sid,
b.VALUE,
round((SYSDATE - c.logon_time) * 24) hours_connected
FROM v$statname a, v$sesstat b, v$session c
WHERE a.statistic# = b.statistic#
AND b.sid = c.sid
AND b.VALUE > 0
AND a.NAME = 'physical writes direct'

[@more@]
  1. 参数说明:

  事件号:213

  事件名:direct path write

  参数一:要写入的绝对文件号file number,可发现所进行的操作性质(如:排序/并行操作)

  参数二:起始块号first dba

  参数三:块数block cnt,可发现直接写入IO的大小

由参数P1与P2推得访问的数据对象:

select s.segment_name, s.partition_name
from dba_extents s
where between s.block_id and (s.block_id + s.blocks -1) and s.file_id =

注:

>> 1. 如果是Temp文件,则表示该会话正在写入临时表空间,查明使用临时段的类型,有助于了解会话所做的事情。

SELECT DISTINCT decode(t.ktssosegt,
1,'SORT',
2,'HASH',
3,'DATA',
4,'INDEX',
5,'LOB_DATA',
6,'LOB_INDEX',
'UNDEFINED')
FROM sys.x$ktsso t
WHERE t.inst_id = userenv('instance') AND
t.kssoses = <当前session地址> AND
t.ktssosno =

>> 2. 如果是数据文件,则可能正在执行一项直接路径加载操作,通过P1值确定数据文件的名称:

select s.NAME from v$datafile s where s.FILE# =
union all
select a.name
from v$tempfile a, v$parameter b
where b.NAME = 'db_files'
and a.FILE# + b.VALUE =

  1. 等待时间:无超时

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/79291/viewspace-910229/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    31
  • 访问量
    114367