WELCOME, GUEST
Minimize
Blogger List

Steven Feuerstein Indicates Oracle ACE director status
PL/SQL Obsession

Guy Harrison Indicates Oracle ACE status
Database topics

Bert Scalzo Indicates Oracle ACE status
Toad for Oracle, Data Modeling, Benchmarking
Dan Hotka Indicates Oracle ACE director status
SQL Tuning & PL/SQL Tips

Valentin Baev
It's all about Toad

Ben Boise
Toad SC Discussions

Dan Clamage
SQL and PL/SQL

Kevin Dalton
Benchmark Factory

Peter Evans 
Business Intelligence, Data Integration, Cloud and Big Data

Vaclav Frolik  
Toad Data Modeler, Toad Extension for Eclipse

Devin Gallagher
Toad SC discussions

Anju Gandhi
Toad for Oracle

Stuart Hodgins
JProbe Discussions

Julie Hyman
Toad for Data Analysts

  Henrik "Mauritz" Johnson
Toad Tips & Tricks on the "other" Toads
  Mark Kurtz
Toad SC discussions
Daniel Norwood
Tips & Tricks on Toad Solutions
Amit Parikh
Toad for Oracle, Benchmark Factory,Quest Backup Reporter
Debbie Peabody
Toad Data Point
Gary Piper
Toad Reports Manager
John Pocknell
Toad Solutions
Jeff Podlasek
Toad for DB2
Kuljit Sangha
Toad SC discussions
Michael Sass 
Toad for DB2
Brad Wulf
Toad SC discussions
Richard To
SQL Optimization
  Toad Data Modeler Opens in a new window
Data Modeling
 
  Toad Higher Education
How Hi-Ed Uses Toad
  Real Automated Code Testing for Oracle
Quest Code Tester blog
  中文技术资料库
技术文章
 

Blogs

Toad World blogs are a mix of insightful how-tos from Quest experts as well as their commentary on experiences with new database technologies.  Have some views of your own to share?  Post your comments!  Note:  Comments are restricted to registered Toad World users.

Do you have a topic that you'd like discussed?  We'd love to hear from you.  Send us your idea for a blog topic.


Feb 22

Written by: 中文技术资料库
2/22/2012 1:23 PM  RssIcon

原文: SQL OPTIMIZER FOR SQL SERVER 8.0 BETA 原文投稿日期:2012221 星期二

作者:虹天软件(珠海)有限公司 杜伟业(Richard To

 

经过将近一年的研发,我现在宣布SQL Optimizer for SQL Server 8.0的测试版本已经可以使用了。从这里可以下载:http://sqloptimizersqlserver.inside.quest.com/index.jspa.

说实话,过去我主要精力集中在SQL Optimizer for Oracle方面的研发。因此,有时我们会收到SQL Server用户的抱怨说我们的优化引擎赶不上SQL Server的升级。现在我有信心说新版本的SQL Optimizer for SQL Server将能满足大多数SQL Server用户的期望。

SQL Optimizer 8.0有些什么新功能?

改进了SQL重写引擎

我们为重写引擎构建了多条新的规则和调整了一些配额。结果是真是太棒了。以前很多不能优化的SQL 语句现在用新引擎都可以优化了。这是重写引擎的一个显著的改进。 

由于SQL Server的内部SQL优化器对于执行计划的选择不如Oracle的语法敏感,这就降低了我们重写调优在SQL Server平台的效率。为了解决这个问题,我们研发出了一条新的提示组合规则。这条规则允许你尝试更多的语法和提示组合。我的测试表明它新产生的执行计划的质量有显著的提高。此外,一些正在研发中的规则在测试版本还不可用到,这些规则可能帮助加快某些环境中的含有“NOT IN” and “NOT EXISTS” 的SQL语句。在产品发布后我将会做详细的解说。

计划控制(Plan Control)

在过去的几个月中,我们用了大量的资源开发了一个新的优化模块叫做“Plan Control”。它是一项新的SQL调优技术,无需修改源代码,就可以优化SQL Server的SQL语句。

计划控制采用了SQL Server 2005引入的计划指南 (Plan Guides) 功能。你可以使用这一功能优化一条SQL语句的执行计划并且可以在无需修改源代码的情况下部署计划指南。这个特性对于那些你没有权限接触到源代码的第三方应用程序特别有用。 

首先,SQL Optimizer分析你的SQL语句后产生执行计划的替代品。然后,SQL Optimizer应用一组SQL Server的提示(Hints)和字面常量值参数化到每条SQL以产生可供选择的查询计划。一旦SQL Optimizer完成了这个过程,你可以运行这些替代品取回运行时统计信息,比较这些替代品就可以为你的数据库环境识别出最好的那一个。然后你可以部署选定的计划指南到数据库。

在Sybase和Oracle平台,我们已经研发出的相似的计划控制SQL调优功能,但是SQL Server的计划控制功能是所有平台中最复杂的一个。这是由于SQL Server的计划指南特性的复杂性;一条部署过的SQL语句的匹配依赖于嵌入SQL语句的来源。例如,SQL可能来自于一个T-SQL批处理,内嵌在数据库对象(存储过程)的一条SQL,或者来自于某一个客户端的一条单独的SQL语句。此外,那些字面常量值参数化模板计划指南(好像Oracle的自适应游标共享),“Optimize For”和这类计划指南对于开发人员来说也是个难懂的概念。我想很多开发人员很难手工使用好这个复杂的SQL Server计划指南特性。请试用我们的测试版,你无需理解计划指南复杂的概念并且能够轻而易举地进行优化和部署一条SQL语句的计划指南。

下面是Plan Control这个新模块的一些截图:

SQL Optimize的开始页面中你可以选择Plan Control

Plan ControlSQL优化的功能跟SQL Rewrite类似;在测试运行后,你可以选择部署某一个计划指南。 

这是一个解释计划控制如何应用计划指南概念的例子;在以后的文章中我将会讲述更多的细节。

Search Blog Entries
 
Blog Archives
 
Archive
<May 2013>
SunMonTueWedThuFriSat
2829301234
567891011
12131415161718
19202122232425
2627282930311
2345678
Monthly
May, 2013 (15)
April, 2013 (13)
March, 2013 (10)
February, 2013 (5)
January, 2013 (7)
December, 2012 (6)
November, 2012 (10)
October, 2012 (8)
September, 2012 (6)
August, 2012 (8)
July, 2012 (8)
June, 2012 (12)
May, 2012 (21)
April, 2012 (10)
March, 2012 (16)
February, 2012 (19)
January, 2012 (20)
December, 2011 (19)
November, 2011 (14)
October, 2011 (12)
September, 2011 (17)
August, 2011 (15)
July, 2011 (16)
June, 2011 (13)
May, 2011 (15)
April, 2011 (8)
March, 2011 (21)
February, 2011 (17)
January, 2011 (16)
December, 2010 (13)
November, 2010 (13)
October, 2010 (7)
September, 2010 (15)
August, 2010 (11)
July, 2010 (13)
June, 2010 (12)
May, 2010 (14)
April, 2010 (12)
March, 2010 (13)
February, 2010 (12)
January, 2010 (7)
December, 2009 (10)
November, 2009 (12)
October, 2009 (15)
September, 2009 (18)
August, 2009 (13)
July, 2009 (23)
June, 2009 (14)
May, 2009 (17)
April, 2009 (7)
March, 2009 (14)
February, 2009 (7)
January, 2009 (12)
December, 2008 (7)
November, 2008 (11)
October, 2008 (19)
September, 2008 (14)
August, 2008 (11)
July, 2008 (14)
June, 2008 (19)
May, 2008 (12)
April, 2008 (18)
March, 2008 (13)
February, 2008 (8)
January, 2008 (7)
December, 2007 (5)
November, 2007 (8)
October, 2007 (13)
September, 2007 (13)
August, 2007 (16)
July, 2007 (11)
June, 2007 (6)
May, 2007 (5)
April, 2007 (5)
March, 2007 (8)
February, 2007 (6)
January, 2007 (6)
December, 2006 (5)
November, 2006 (8)
October, 2006 (4)
August, 2006 (3)