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

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

接上文:判断什么时候使用并行SQL(上)   长期运行或者资源密集的情况可以采用并行SQL   并行SQL适合长期运行或者资源密集型语句。在激活和协调多个并行查询处理方面和处理这些进程之间信息流的协调方面是存在开销的。对于使用期较短的SQL语句,这种开销可能比整个SQL的响应时间都要长。   并行处理通常用于以下情况:   长期运行的报表。

  批量更新大表。  对大表构建或者重建索引。  为了分析处理创建临时表。  为了提升性能或者为了清除不需要的表而重建表。

  并行处理通常不适合事务处理环境。在这些环境中,多个会话并行处理事务。充分利用可用CPU资源的目的已经实现,因为每个并发事务可以利用……

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

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

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

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

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

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

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

  长期运行或者资源密集的情况可以采用并行SQL

  并行SQL适合长期运行或者资源密集型语句。在激活和协调多个并行查询处理方面和处理这些进程之间信息流的协调方面是存在开销的。对于使用期较短的SQL语句,这种开销可能比整个SQL的响应时间都要长。

  并行处理通常用于以下情况:

  •   长期运行的报表。
  •   批量更新大表。
  •   对大表构建或者重建索引。
  •   为了分析处理创建临时表。
  •   为了提升性能或者为了清除不需要的表而重建表。

  并行处理通常不适合事务处理环境。在这些环境中,多个会话并行处理事务。充分利用可用CPU资源的目的已经实现,因为每个并发事务可以利用不同的CPU。如果允许单个用户独占多个CPU的话,实施并行处理可能实际上会降低整体性能。

  并行处理适合在低并发的环境中长期运行操作。并行处理不太适合OLTP风格的数据库。

  执行至少一个全表,索引或者分区扫描的SQL。

  并行处理对于那些包含对表,索引或者分区进行扫描的操作,一般是受限制的。然而,该SQL可能包含混合操作,只有其中一些会涉及扫描。例如,利用索引做嵌套循环连接来连接两个表可以完全并行,即使驱动表是被全表扫描访问的。

  尽管被索引查找驱动的查询一般不会并行化处理,但是如果基于本地分区索引查询分区表,每个索引扫描可以在针对与索引分区相对应的表分区上执行。

  你的主机处理能力有盈余

  如果你的服务器是满负荷运行的话,你不可能实现并行处理的全部收益。并行处理对于在未充分利用的,多CPU的计算机上执行单个任务时效果最好。如果计算机上的所有CPU都比较忙,你的并行处理将会遇到CPU瓶颈,性能也会下降。

  要记住,当某个会话采用并行查询时,它对计算机资源请求了更大的份额。如果许多进程同时尝试并行运行,结果通常会是不能达到请求的并行度,从而会去申请比它们该分配比例更多的资源。

  调整良好的SQL

  对于调优比较差的SQL做并行化调整会降低它的执行时间。而且,你还会放大SQL对数据库服务器的影响,并增加它对其它会话的影响。你应该在试图给它授权访问更多数据库服务器资源之前,确保该SQL是高效率的。SQL并行化不是调优SQL的替代品。

相关推荐