|
direct path read temp / direct path write temp 为了排序工作在临时区域读写时,等待direct path read temp、direct path write temp事件。 这个等待时间是从10g开始被分类的。9i之前是通过direct path read 、direct path write 等特观察的。排序段上的direct path I/O是在需要排序的数据比为排序所分配的PGA内存区大时发生的。因此若排序工作时大量发生direct path read tmp 、direct path write temp等待,就可以通过追加分配内存区域而避免等待。 1)应用程序层:检查需要排序的SQL语句是否已经最优化。不必要的排序操作会导致CPU浪费、PGA区域的浪费、磁盘I/O的浪费。从union和union all 的性能差异上可以得知,只靠减少不必要的排序操作,也能解决许多问题。 2)oracle内存层:PGA拥有为执行排序、Hash join、位图等运算等的内存区域,这个称为工作区(work area);在进程上分配的工作区大小内一次性实现的排序称为one pass sort。与此相反的情况称为multi pass sort。发生multi pass sort时,排序工作过程中将排序结果读写到排序段(sort segment)区域,因此发生direct path read temp 、direct path write emp等待。如果等待大量发生,就可以适当提高PGA_AGGREGATE_TARGET值,以此消除问题。
|