用Oracle并行查询发挥多CPU的威力

文章作者 100test 发表时间 2007:03:14 13:56:09
来源 100Test.Com百考试题网


在一个单独的服务器中安装更多的CPU成为目前的一个趋势。使用对称多处理服务器(SMP)的情况下,一个Oracle服务器拥有8个、16个或32个CPU以及几吉比特RAM的SGA都不足为奇。

Oracle跟上了硬件发展的步伐,提供了很多面向多CPU的功能。从Oracle8i开始,Oracle在每个数据库函数中都实现了并行性,包括SQL访问(全表检索)、并行数据操作和并行恢复。对于Oracle专业版的挑战是为用户的数据库配置尽可能多的CPU。

在Oracle环境中实现并行性最好的方法之一是使用Oracle并行查询(OPQ)。我将讨论OPQ是如何工作的和怎样用它来提升大的全表检索的响应时间以及调用并行事务回滚等等。

使用OPQ

当在Oracle中进行一次合法的、大型的全表检索时,OPQ能够极大地提高响应时间。通过OPQ,Oracle将表划分成如图A所示的逻辑块。

图 A

由OPQ划分的表

一旦表被划分成块,Oracle启用并行的子查询(有时称为杂务进程),每个子查询同时读取一个大型表中的一块。所有子查询完毕以后,Oracle将结果会传给并行查询调度器,它会重新安排数据,如果需要则进行排序,并且将结果传递给最终用户。OPQ具有无限的伸缩性,因此,以前需要花费几分钟的全表检索现在的响应时间却不到1秒。

OPQ严重依赖于处理器的数量,通过并行运行之所以可以极大地提升全表检索的性能,其前提就是使用了N-1个并行进程(N=Oracle服务器上CPU的数量)。

必须注意非常重要的一点,即Oracle9i能够自动检测外部环境,包括服务器上CPU的数量。在安装时,Oracle9i会检查服务器上CPU的数量,设置一个名为cpu_count的参数,并使用cpu_count作为默认的初始化输入参数。这些初始化参数会影响到Oracle对内部查询的处理。

下面就是Orale在安装时根据cpu_count而设置的一些参数:

fast_start_parallel_rollback

parallel_max_servers

log_buffer

db_block_lru_latches


相关文章


入门基础:认识OracleSQL内置函数(7)
入门基础:认识OracleSQL内置函数(5)
如何在Oracle数据库10g中跟踪SQL
入门基础:认识OracleSQL内置函数(3)
用Oracle并行查询发挥多CPU的威力
入门基础:认识OracleSQL内置函数(4)
Oracle数据仓库的分层管理器解决方案(1)
入门基础:认识OracleSQL内置函数(2)
Oracle数据仓库的分层管理器解决方案(2)
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛