SQL Turning是Quest公司生产的Quest Central软件中的一个工具。Quest Central是一个集成的、图形化的跨平台数据库管理解决方案。
您可以同时管理oracle、DB2和sql server数据库。
1. Introduction to SQL Tuning for SQL Server
SQL语句的优化对于数据库的最佳性能非常重要。然而不幸的是,由于时间和资源因素,应用程序优化通常被忽略。SQL调优模块可以比较和评估SQL语句在特定应用程序中的性能,
提出智能优化建议,帮助用户提高应用的响应时间。SQL优化模块具有非侵入式SQL收集、自动优化、专家建议等功能,全面提升SQL优化。
Second, the use of SQL tuning for SQL Server
1. Open the pop-up window of Quest database management solution as shown in Figure 1.
图1
2.打开SQL Tuning以优化红色标记处的SQL。
(1)建立连接。
在Quest Central主界面的数据库树中选择SQL Server,然后在下面的工具箱中选择SQL Tuning选项。
打开“针对SQL Server连接的Lanch SQL优化”对话框(图2和图3)。我们在这里建立数据库服务器的连接,以后的分析工作将在其上完成。
图2“建立连接”对话框
图3
双击“新建连接”图标,在弹出的窗口中输入数据库的信息,点击“确定”,然后点击“连接”。
(2)分析原始SQL语句,点击“连接”后会弹出一个新窗口,如图4所示。
图4
在打开窗口的“Orion SQL”文本框中输入要分析的Oriangal SQL语句,在红色标记处选择对应的数据库名称。SQL语句的代码如下:
图5分析了原始的SQL语句
原始SQL语句
然后点击工具栏上的“执行”按钮,执行原来的SQL语句,SQL调优会自动分析SQL的执行计划,并将分析结果显示在界面上(图5)。
(3)优化SQL。
现在,让我们单击工具栏上的“优化语句”按钮,让SQL调优开始优化SQL。完成后,我们可以看到SQL调优产生了19个与原始SQL相当的优化方案(图6)。
图6 SQL优化方案
(4)获取最佳SQL。
接下来,让我们执行上面生成的优化方案,选择具有最佳性能的等价SQL语句。在列表中选择要执行的优化方案(默认全部选中),然后点击工具栏上“执行”按钮旁边的下拉菜单。
选择“执行所选”。所有SQL运行完成后,单击界面左侧的“Tuning Resolution”按钮。
可以看到最好的SQL已经出来了,运行时间可以提升21%!(图7)
Figure 7 "Tuning Resolution" Interface
最优的SQL语句如下:
5)学习书写专家级的SQL语句。
优化后的SQL语句
SELECTdbo.Person_BasicInfo.*,
dbo.Graduater_GraduaterRegist.RegistNOASRegistNO,
dbo.Graduater_GraduaterRegist.RegistTimeASBaoDaoTime,
dbo.Graduater_GraduaterRegist.RegistManASRegistMan,
dbo.Graduater_Business.ComeFromASComeFrom,
dbo.Graduater_Business.CodeASCode,
dbo.Graduater_Business.StatusASStatus,
dbo.Graduater_Business.ApproveResultASApproveResult,
dbo.Graduater_Business.NewCorpASNewCorp,
dbo.Graduater_Business.CommendNumberASCommendNumber,
dbo.Graduater_Business.EmployStatusASEmployStatus,
dbo.Graduater_Business.NewCommendTimeASNewCommendTime,
dbo.Graduater_Business.GetSourceASGetSource,
dbo.Graduater_Business.EmployTimeASEmployTime,
dbo.Graduater_Business.JobASJob,
dbo.Graduater_Business.FillManASFillMan,
dbo.Graduater_Business.FillTimeASFillTime,
dbo.Graduater_Business.IsCommendOKASIsCommendOK,
dbo.Graduater_Business.ApproveUserASApproveUser,
dbo.Graduater_Business.ApproveTimeASApproveTime,
dbo.Graduater_Business.RegistTimeASRegistTime,
dbo.Graduater_Business.EmployCorpASEmployCorp,
dbo.Graduater_Business.JobRemarkASJobRemark,
CASEWHENdbo.Graduater_Business.ComeFrom='WS'THEN'网上登记'
WHENdbo.Graduater_Business.ComeFrom='HP'THEN'华普大厦'
WHENdbo.Graduater_Business.ComeFrom='JD'THEN'精典大厦'
WHENdbo.Graduater_Business.ComeFrom='MC'THEN'赛马场'
WHENComeFrom='ZX'THEN'高指中心'ENDASComeFromName,
dbo.Person_Contact.AddressASAddress,
dbo.Person_Contact.ZipASZip,
dbo.Person_Contact.TelephoneASTelephone,
dbo.Person_Contact.MobileASMobile,
dbo.Person_Contact.EmailASEmail,
dbo.Person_Contact.IMASIM,
dbo.Person_Skill.ForeignLanguageASForeignLanguage,
dbo.Person_Skill.ForeignLanguageLevelnbs