Oracle 10g 直接路径 write/read 等待事件

Oracle 10g direct path write/read wait events

我的 10g oracle prod 数据库有性能问题。一些查询在 20 秒内开始 return,这是以毫秒为单位的。我得到如下所示的 AWR 报告和 top3 等待事件。我搜了下也看不懂

有人可以解释一下这个事件吗?谢谢,

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

您的两个等待事件与排序相关:direct path write tempdirect path read temp。这些表明在磁盘上而不是在内存中排序的增加;磁盘 I/O 总是较慢。

那么,内存分配使用情况发生了什么变化?也许您需要重新访问 SORT_AREA_SIZE 或 PGA_AGGREGATE_TARGET 初始化参数的值(取决于您是否使用自动 PGA 内存)。这是一个计算 memory/disk 排序比率的查询:

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%。

另一件事是,您不需要查看宏事件,而是需要查看 运行 慢得多的特定查询。他们发生了什么变化?更多数据?新索引还是删除索引?刷新统计数据?


"SORT_RATIO ---------- 99.9985462"

因此,排序较高但不会太高。您需要专注于特定查询。

"in march we begun to user phyton application for some new queries. reason can be this ? "

可能是。当我们的系统表现出不同的行为时,应用程序更改始终是主要嫌疑人。