判断什么时候使用并行SQL(上)

日期: 2010-12-06 作者:Guy Harrison翻译:冯昀晖 来源:TechTarget中国 英文

为了避免使用过度,你需要知道哪些情况该使用并行处理。本文会简单介绍什么时间该使用Oracle数据库的并行SQL,以及如何监视并行SQL。   判断什么时候该使用并行处理   一位开发人员曾经看见我使用并行SQL关键字来对临时查询获得快速响应。此后不久,该开发者的每一句SQL都写上了并行关键字,因为过度的并行处理,系统性能遭受了数据库服务器负载过度的问题。

  教训很明显:如果系统中每一个并发SQL都试图使用系统的所有资源,并行会使性能变得更糟,而不是更好。因此,我们应该只在不影响其它并发数据库请求的情况下使用并行SQL提高性能。   下面的内容讨论了一些情况,你可以在这些情况下有效地使用并行S……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

为了避免使用过度,你需要知道哪些情况该使用并行处理。本文会简单介绍什么时间该使用Oracle数据库的并行SQL,以及如何监视并行SQL。

  判断什么时候该使用并行处理

  一位开发人员曾经看见我使用并行SQL关键字来对临时查询获得快速响应。此后不久,该开发者的每一句SQL都写上了并行关键字,因为过度的并行处理,系统性能遭受了数据库服务器负载过度的问题。

  教训很明显:如果系统中每一个并发SQL都试图使用系统的所有资源,并行会使性能变得更糟,而不是更好。因此,我们应该只在不影响其它并发数据库请求的情况下使用并行SQL提高性能。

  下面的内容讨论了一些情况,你可以在这些情况下有效地使用并行SQL。

  你的服务器计算机有多块CPU

  如果托管你Oracle数据库的计算机有多块CPU,并行处理通常会更有效。这是因为Oracle服务器执行的大部分操作(访问Oracle共享内存,执行排序,磁盘访问)需要CPU资源。如果托管计算机只有一个CPU,并行处理可能会竞争该CPU,因而实际性能可能会降低。

  几乎任何一台现代计算机都有一个以上的CPU;双核(一个处理器插槽中有两个CPU)配置可能是能找到的运行Oracle服务器的最低配置了,包括运行部署数据库的桌面计算机和笔记本电脑。然而,运行在虚拟机中的数据库可能被配置为唯一(虚拟化的)CPU。

  要访问的数据存储在多个磁盘驱动器上

  如果查询必须的数据可以在Oracle缓存区找到的话,许多SQL语句只需要很少的磁盘访问(甚至不需要访问磁盘)就可以解决。然而,对于大表的全表扫描(经常采用并行处理的一种操作)往往需要大量的物理磁盘读操作。如果要访问的数据在一块磁盘上,并行处理会对该磁盘排队处理,并行处理的优势可能不会得到实现。

  如果数据均匀地跨多块采用了某种形条带形式的磁盘设备分布,并行的优势就最大化地发挥了。我们在第21章会讨论条带式存储原则。

相关推荐