Oracle 10g直接路径写入/读取等待事件
我的10g oracle prod数据库存在性能问题。一些查询在20秒内开始返回,以毫秒为单位。我得到的AWR报告和top3等待事件如下所示。我搜索了一下,但还是不明白 有人能解释这件事吗?谢谢Oracle 10g直接路径写入/读取等待事件,oracle,performance,oracle10g,Oracle,Performance,Oracle10g,我的10g oracle prod数据库存在性能问题。一些查询在20秒内开始返回,以毫秒为单位。我得到的AWR报告和top3等待事件如下所示。我搜索了一下,但还是不明白 有人能解释这件事吗?谢谢 Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class ---------------------- ---------- -----
Event Waits Time(s) Avg Wait(ms) % Total Call Time Wait Class
---------------------- ---------- ------- ------------ ----------------- ----------
direct path write temp 11,941,557 866,004 73 29.8 User I/O FEBRUARY
direct path write temp 16,197,445 957,129 59 17.2 User I/O MARCH
db file scattered read 5,826,190 58,095 10 2.0 User I/O FEBRUARY
db file scattered read 10,128,657 70,408 7 1.3 User I/O MARCH
direct path read temp 34,197,762 324,663 9 11.2 User I/O FEBRUARY
direct path read temp 88,688,686 507,715 6 9.1 User I/O MARCH
两个等待事件与排序相关:
直接路径写入临时值
和直接路径读取临时值
。这表明磁盘上的排序比内存中的排序要多;磁盘I/O总是较慢
那么,内存分配使用方面发生了什么变化?也许您需要重新访问SORT_AREA_SIZE或PGA_AGGREGATE_TARGET init参数的值(取决于您是否使用自动PGA内存)。下面是一个计算内存/磁盘排序比率的查询:
SELECT 100 * (mem.value - dsk.value)/(mem.value) AS sort_ratio
FROM v$sysstat mem
cross join v$sysstat dsk
WHERE mem.name = 'sorts (memory)'
AND dsk.name ='sorts (disk)'
在OLTP应用程序中,我们预计这将超过95%
另一件事是,您需要查看运行速度慢得多的特定查询,而不是查看宏事件。他们发生了什么变化?更多的数据?新索引还是删除的索引?刷新的统计数据
“排序比-------99.9985462” 因此,排序较高,但不太高。您需要关注特定的查询 “三月份,我们开始使用phyton应用程序进行一些新的查询。原因可能是这样的?”
可能是。当我们的系统表现出不同的行为时,应用程序更改始终是主要的疑点 一切都没有改变。没有任何新的或删除的索引。但在三月份,我们开始使用phyton应用程序进行一些新的查询。原因可能是这样的?并且逻辑读取部分的另一个段包含新的和如此大的值。我是否应该理解数据库上开始的新查询以及此查询的原因?排序比率------------99.9985462