problem:
direct path read 等待,temp表空间使用达100%
有10 session 有direct path read 等待,而且好像一直都在那里等着,从昨天我就看到了这些等待,到今天还在,这些进程占很大cpu资源,但temp表空间使用达到100%,有没有办法解决,增加pga大小,还是加大temp表空间?
###############################################################
methord:
------------------------------------------
1.最好是Tune SQL
2.次好是Add PGA
3。实在不行加temp tablespace
4.当然,继续等待也是没有办法中的办法。
-------------------------------------------------
sort need compare. compare need cpu ...
You can get free temp tablespace blocks from v$sort_usage v$tempfile.
And make sure your sort_area_size is enough to make sure sort is completed in one merge pass.
You can setsort_area_size to nG is your OS permit.
-----------------------------------------------
看看SQL语句的执行计划。联合查询导致大量排序操作,耗尽PGA后进而引起TEMP IO。看是否可以从优化SQL入手。
-------------------------------------------------------------
版本?8i增加sort_area_size ,hash_area_size,9i pga如auto管理方式,增加pga_aggregate_target
但首先tunning SQL!减少sort,sort尽可能小的结果集
------------------------------------------------------------------------------------------------------------
direct path read 等待一般为 order by,group by 语句执行不合理引起的,最好能从语句方面解决
---------------------------------------------------------------------------------
Are p1,p2,p3 values changing in v$session_wait where event='direct path read'? If not, check your OS or filesystem. But sometimes you just can't find the root cause of the problem and you have to shutdown immediate and restart. I recall having this problem twice in the past few years.
If the values change, it means they are still doing real work but your system doesn't have enough capacity. What kind of box is it? Number of CPUs, memory, disk RAID etc.?
Always post Oracle version and OS version. What's your pga_aggregate_target?
As everyone says, tune SQL and tune SQL again.
Yong Huang
--------------------------------------------------------------------------------------------------
direct path read
CausesThis happens in the following situations:
■ The sorts are too large to fit in memory and some of the sort data is written out directly to disk. This data is later read back in, using direct reads.
■ Parallel slaves are used for scanning data.
■ The server process is processing buffers faster than the I/O system can return thebuffers. This can indicate an overloaded I/O system.
--------------------------------------------------------------------------------------------
昨天也碰到类似的问题了,等在direct path read temp上,OS里看到没有什么IO,一个CPU满负荷空转.
SQL是由程序自动生成的,的确是又臭又长,把其中的一个子查询用一个临时表替换后,马上就跑完了
感觉像是有点bug的味道
from:
#################################################################
今天生产数据库出现了几个direct path read等待事件,参考oracle文档,得知asynchronous disk operate有关,随即检查fuser /dev/async,kctune |grep aio_max_ops,show paramete disk_asynch_io 均正常。继续检查v$session_wait,发现file number 并不在dba_data_files中,据此推测此问题发生在temp tablespace中,随即检查v$sort_usage,发现出现的session,与v$session_wait中“direct path read”中的session吻合。继续检查pga的使用情况select * from v$pagstat发现,pga使用已较高(参考workarea_size_policy+pga_aggregate_target),综上所述,pga使用达到一定程度后(2G*5%*6process=600M),只能使用temp tablespace完成排序操作,由于temp tablespace使用的disk,因此出现上述direct path read 也是正常的。解决此问题的方法为使用较大的将workarea_size_policy更改为manual,加大sort_area_size,减少使用temp tablespace的使用。
from:
#################################################################
from:
#################################################################
模拟direct path read temp等待事件:
from:
分享到:
相关推荐
#Core session logical reads ...direct path read direct path write #Network Traffic bytes sent via SQL*Net to client bytes received via SQL*Net from client SQL*Net roundtrips to/from client
- **Direct path read**:这是Oracle的快速路径插入,如果造成等待,可能是由于数据导入或大量DML操作。使用批量插入,或者在低并发时段进行大操作,可以减少等待。 ### 队列等待的基本知识 队列等待是数据库系统...
例如,`enqueue`事件可能表示锁竞争,`db file scattered read`可能指示全表或全索引扫描,`direct path read`或`direct path write`可能涉及外部排序,`global cache cr request`可能与RAC环境中的实例间通信有关。...
1. **直接路径读(Direct Path Read)**:Oracle使用libaio进行快速的数据读取,跳过了SGA(System Global Area)的缓冲区,减少了I/O等待时间。 2. **直接路径写(Direct Path Write)**:在写入操作中,libaio...
例如,如果在100条活动会话采样中,"direct path read"等待事件出现了40次,那么可以推断这段时间内,"direct path read"占据了数据库时间的40%,这对于识别I/O瓶颈或查询优化问题非常有帮助。 此外,ASH报告对于...
高资源消耗sql定位:消耗CPU较多的sql:消耗磁盘较多的sql:查找产生direct path read的SQL,查询当前等待事件,主要是direct path read
- **说明**: 通过设置以上事件,可以关闭11g中的自动serial direct path read特性,减少不必要的直接路径读取操作,节省IO资源。同时,28401事件用于关闭用户连续输入错误密码时的延迟验证机制,防止因此产生的大量...
- **direct path read**:表示直接路径读取操作,通常发生在导入或导出操作中。 - **direct path write**:表示直接路径写入操作,通常发生在批量插入或直接路径导入操作中。 #### 四、User I/O等待事件的影响因素 ...
5. 使用Latch-Free技术:如Direct Path Read,减少对Buffer Cache Latch的依赖。 6. 数据库版本升级:新版本的Oracle数据库可能包含优化,减少了某些Latch的使用。 五、实例分析与案例研究 "Resolving_Oracle_Latch...
Oracle数据库利用libaio实现直接路径读写(Direct Path Read/Write),绕过标准的文件系统缓存,减少I/O延迟,提高数据存取速度。特别是在大型企业级部署中,Oracle数据库需要高效、稳定的数据处理能力,libaio的...
6. **Direct Path Read (DPR)**:绕过Buffer Cache的直接读取方式,适用于大范围扫描。 7. **Asynchronous I/O (AIO)**:异步I/O操作,提高I/O吞吐量。 二、I/O问题识别 1. **高I/O等待时间**:通过`v$sysstat`...
6. **零拷贝技术**:某些数据库系统支持零拷贝技术,如Oracle的Direct Path Read,可以减少数据在操作系统内核空间和用户空间之间的复制,提高读取速度。 7. **数据库缓存与内存管理**:数据库会缓存经常访问的数据...
- Direct Path Read/Write:用于大数据量操作的I/O方法,如批量加载或导出/导入过程。 - **系统I/O**: - 数据文件并行写入(db file parallel write):在进行备份或恢复操作时常见。 - 日志文件并行写入(log...
2. **智能扫描(Smart Scan)**:当数据库请求涉及全表或全索引扫描,并且包含Direct Path Read时,Cellsrv会执行相应的智能扫描操作,通过这种方式实现高效的数据检索。 3. **I/O资源管理(IORM)**:如果启用了IORM,...
node10-win-x64> Fetching base Node.js binaries to PKG_CACHE_PATH fetched-v10.17.0-win-x64 [ ] 0%> Error! getaddrinfo ENOENT github-production-release-asset-2e65be.s3.amazonaws....
"Oracle等待事件说明一"主要关注了几个关键的等待事件,包括"buffer busy waits"、"db file parallel write"、"db file single write"、"db file scattered read"、"db file sequential read"以及"direct path write...
13. To read a binary file using `FileInputStream`, you would typically create an instance of `FileInputStream`, passing the file path as a parameter, then call the `read()` method repeatedly to read ...
rows = Number of rows in conventional path bind array or between direct path data saves nolog = no logging方式导入 (默认FALSE) Export Valid Keywords: query = select语句,只支持单表查询 table = ...
Dim directSound As New DirectSound() ``` 2. **初始化设备**:设置默认的声卡设备。 ```vbnet Dim soundDevice As New Device(directSound, Device.Default) soundDevice.SetCooperativeLevel(Me.Handle, ...
1. **WiFi Direct**: WiFi Direct是一种直接的设备对设备的无线连接技术,允许设备之间进行高速数据传输,而无需通过传统的Wi-Fi接入点。在Android中,可以使用`WifiP2pManager`类来实现这一功能。首先,需要开启...