【发布时间】:2020-07-12 05:05:59
【问题描述】:
据我所知,Oracle 在 PGA 中执行排序操作。但它是否也在缓冲区缓存或共享池等中这样做?如果是,它在哪些条件下对这些区域进行排序?
【问题讨论】:
标签: oracle oracle11g database-performance database-administration sql-tuning
据我所知,Oracle 在 PGA 中执行排序操作。但它是否也在缓冲区缓存或共享池等中这样做?如果是,它在哪些条件下对这些区域进行排序?
【问题讨论】:
标签: oracle oracle11g database-performance database-administration sql-tuning
不,它总是在 PGA 中。但是这里有语义的问题。
例如,如果使用全自动内存管理,那么我们保留在共享内存区域和私有内存区域之间混洗数据的权利。因此,曾经在共享内存中的同一块物理内存可能会在其生命后期成为私有内存。但是到那个时候……现在是 PGA。
此外,如果我们可以按请求的顺序读取数据而无需对其进行排序,那么它将从缓冲区缓存中“预排序”交付给客户端,因为我们不需要对其进行排序。
但正如我所说 - 这只是解释。出于所有密集目的,您可以假设 PGA 是进行排序的地方。
【讨论】: