我的10g oracle prod数据库存在性能问题。一些查询开始在20秒内返回,这是以毫秒为单位。我得到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
答案 0 :(得分:0)
您的两个等待事件与排序有关:direct path write temp
和direct path read temp
。这表明磁盘而不是内存中的排序增加;磁盘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%。
另一件事是,您需要查看运行速度慢得多的特定查询,而不是查看宏事件。对他们有什么改变?还有更多数据?新索引或删除索引?更新的统计数据?
“SORT_RATIO ---------- 99.9985462”
因此,种类更高但不会太高。您需要专注于特定的查询。
“在3月我们开始使用phyton应用程序进行一些新查询。原因可能是这个吗?”
可能。当我们的系统表现出不同的行为时,应用程序的变化始终是主要的疑