[SQL优化工具]Quest.Central.For.Databases——SQL Tuning for SQL Server
随着企业数据库的急剧膨胀和日益复杂,DBA为保证数据库性能所付出的努力与日俱增,手工或使用多种无法集成的管理工具,都会给日常管理和维护带来不必要的困难。 Quest Central for Databases是一种集成化、图形化、跨平台的数据库管理解决方案,可以管理异构环境下的 Oracle、DB2和 SQL server 数据库。Quest Central for Databases消除了企业IT人员管理多种数据库时面临的技术障碍,提高了IT人员工作效率,改善了数据库性能和数据库应用的可用性。为灵活满足用户的不同需求,Quest Central for Databases采用了模块化产品架构。
该产品包括下列功能模块:
1. 数据库管理(DBA)
2. 数据库监控(Monitoring Pack)
3. 数据库诊断 (Spotlight Diagnostics)
4. 数据库分析 (Database Analysis)
5. SQL优化 (SQL Tuning)
6. 空间管理 (Space Management)
7. 压力测试 (Load Generator)
8. 数据生成 (Data Generator)
9. PL/SQL 开发 (TOAD)
10. 专家建议 (Knowledge Expert)
今天主要介绍其中的SQL优化工具—— SQL Tuning for SQL Server
一、SQL Tuning for SQL Server简介
SQL语句的优化对发挥数据库的最佳性能非常关键。然而不幸的是,应用优化通常由于时间和资源的因素而被忽略。SQL Tuning (SQL优化)模块可以对比和评测特定应用中SQL语句的运行性能,提出智能化的优化建议,帮助用户改善应用的响应时间。SQL优化模块具有非介入式SQL采集、自动优化和专家建议等功能,全面改善SQL优化工作。
二、SQL Tuning for SQL Server的使用
1、打开Quest Database Management Solutions弹出窗口如图1所示
图1
2、在红色标记处打开SQL Tuning 优化SQL
(1)建立连接。
在Quest Central主界面上的“Database”树上选择“SQL Server”,然后在下方出现的“Tools”框中选择“SQL Tuning”选项,打开“Lanch SQL Tuning for SQL Server Connections”对话框(图2、图3)。我们在这里建立数据库服务器的连接,以后的分析工作都会在它上面完成。
图2“建立连接”对话框
图3
双击“New Connection”图标,在弹出窗口中输入数据库的信息,单击“OK”,然后单击“Connect”即可。
(2)分析原始SQL语句,在单击“Connect”后将弹出一个新窗口,如图4
图4
在打开窗口的“Oriangal SQL”文本框内输入需要分析的原始SQL语句,红色标记处选择对应的数据库名,SQL语句代码如下:
图5 分析原始SQL语句
然后点击工具栏上的“Execute”按钮,执行原始的SQL语句,SQL Tuning会自动分析SQL的执行计划,并把分析结果显示到界面上(图5)。
(3)优化SQL。
现在我们点击工具栏上的“Optimize Statement”按钮,让SQL Tuning开始优化SQL,完成后,可以看到SQL Tuning产生了19条与原始SQL等价的优化方案(图6)。
图6 SQL优化方案
(4)获得最优SQL。
接下来,我们来执行上面产生的优化方案,以选出性能最佳的等效SQL语句。在列表中选择需要执行的优化方案(默认已全部选中),然后点击工具栏上的“Execute”按钮旁边的下拉菜单,选择“Execute Selected”。等到所有SQL运行完成后,点击界面左方的“Tuning Resolution”按钮,
可以看到最优的SQL已经出来啦,运行时间竟然可以提高21%!(图7)
图7“Tuning Resolution”界面
最优的SQL语句如下:
5)学习书写专家级的SQL语句。
优化后的SQL语句
dbo.Graduater_GraduaterRegist.RegistNO AS RegistNO,
dbo.Graduater_GraduaterRegist.RegistTime AS BaoDaoTime,
dbo.Graduater_GraduaterRegist.RegistMan AS RegistMan,
dbo.Graduater_Business.ComeFrom AS ComeFrom,
dbo.Graduater_Business.Code AS Code,
dbo.Graduater_Business.Status AS Status,
dbo.Graduater_Business.ApproveResult AS ApproveResult,
dbo.Graduater_Business.NewCorp AS NewCorp,
dbo.Graduater_Business.CommendNumber AS CommendNumber,
dbo.Graduater_Business.EmployStatus AS EmployStatus,
dbo.Graduater_Business.NewCommendTime AS NewCommendTime,
dbo.Graduater_Business.GetSource AS GetSource,
dbo.Graduater_Business.EmployTime AS EmployTime,
dbo.Graduater_Business.Job AS Job,
dbo.Graduater_Business.FillMan AS FillMan,
dbo.Graduater_Business.FillTime AS FillTime,
dbo.Graduater_Business.IsCommendOK AS IsCommendOK,
dbo.Graduater_Business.ApproveUser AS ApproveUser,
dbo.Graduater_Business.ApproveTime AS ApproveTime,
dbo.Graduater_Business.RegistTime AS RegistTime,
dbo.Graduater_Business.EmployCorp AS EmployCorp,
dbo.Graduater_Business.JobRemark AS JobRemark,
CASE WHEN dbo.Graduater_Business.ComeFrom = 'WS' THEN '网上登记'
WHEN dbo.Graduater_Business.ComeFrom = 'HP' THEN '华普大厦'
WHEN dbo.Graduater_Business.ComeFrom = 'JD' THEN '精典大厦'
WHEN dbo.Graduater_Business.ComeFrom = 'MC' THEN '赛马场'
WHEN ComeFrom = 'ZX' THEN '高指中心' END AS ComeFromName,
dbo.Person_Contact.Address AS Address,
dbo.Person_Contact.Zip AS Zip,
dbo.Person_Contact.Telephone AS Telephone,
dbo.Person_Contact.Mobile AS Mobile,
dbo.Person_Contact.Email AS Email,
dbo.Person_Contact.IM AS IM,
dbo.Person_Skill.ForeignLanguage AS ForeignLanguage,
dbo.Person_Skill.ForeignLanguageLevel AS ForeignLanguageLevel,
dbo.Person_Skill.CantoneseLevel AS CantoneseLevel,
dbo.Person_Skill.MandarinLevel AS MandarinLevel,
dbo.Person_Skill.Language AS Language,
dbo.Person_Skill.TechnicalTitle AS TechnicalTitle,
dbo.Person_Skill.ComputerLevel AS ComputerLevel,
dbo.Person_EmployPurpose.JobType AS JobType,
dbo.Person_EmployPurpose.Vocation AS Vocation,
dbo.Person_EmployPurpose.JobPlace AS JobPlace,
dbo.Person_EmployPurpose.Salary AS Salary,
dbo.Person_EmployPurpose.OnJobDate AS OnJobDate,
dbo.Person_EmployPurpose.CorpType AS CorpType,
dbo.Person_EmployPurpose.Job AS RequireJob,
YEAR(GETDATE()) - YEAR(dbo.Person_BasicInfo.Birthday) AS Age,
dbo.Graduater_Business.EmployType AS EmployType,
dbo.Graduater_Business.EmployTypeCode AS EmployTypeCode,
dbo.Graduater_Business.EmployCorpType AS EmployCorpType,
CASE WHEN dbo.Graduater_Business.PrintStatus = '已打印' THEN '已打印'
ELSE '未打印' END AS PrintStatus,
dbo.Graduater_Business.PrintTime AS PrintTime,
CASE WHEN dbo.Graduater_Business.EmployStatus = '是' THEN '已就业'
ELSE '未就业' END AS EmployStatusView
FROM dbo.Person_BasicInfo
INNER JOIN dbo.Graduater_Business
ON dbo.Person_BasicInfo.PersonID = dbo.Graduater_Business.PersonID
LEFT OUTER JOIN dbo.Graduater_GraduaterRegist
ON dbo.Graduater_Business.GradBusinessID = dbo.Graduater_GraduaterRegist.GraduaterGUID
INNER JOIN dbo.Person_Contact
ON dbo.Person_BasicInfo.PersonID = dbo.Person_Contact.PersonID
INNER JOIN dbo.Person_Skill
ON dbo.Person_BasicInfo.PersonID = dbo.Person_Skill.PersonID
INNER JOIN dbo.Person_EmployPurpose
ON dbo.Person_BasicInfo.PersonID = dbo.Person_EmployPurpose.PersonID
OPTION (FORCE ORDER)
(
通过上面的步骤,我们已经可以实现自动优化SQL语句,但更重要的是,我们还可以学习如何书写这样高性能的SQL语句。点击界面左方的“Compare Scenarios”按钮,我们可以比较优化方案和原始SQL中的任意2条SQL语句,SQL Tuning会将它们之间的不同之处以不同颜色表示出来,
还可以在下方的“执行计划”中,通过比较两条SQL语句的执行计划的不同,来了解其中的差异(图8)。
图8“Compare Scenarios”界面
三、总结
SQL Tuning等人工智能自动SQL优化工具的出现,为我们节省出大量的时间和精力。借助这些工具的帮助,书写专家级的SQL语句将不再是难事。
Quest.Central.For.Databases下载地址:
http://pan.baidu.com/s/1c2yV3P2
SQL Tuning操作手册英文版:
http://files.cnblogs.com/dreamof/SQL.Tuning.rar
[SQL优化工具]Quest.Central.For.Databases——SQL Tuning for SQL Server相关推荐
- 人工智能自动sql优化工具--SQLTuning for SQL Server
SQL语句是对数据库进行操作的惟一途径,对数据库系统的性能起着决定性的作用.对于同一条件下的SQL语句写法有很多,其中一些写法往往对性能又有很大影响.但是每个人掌握SQL语言的水平不同,如何才能保证写 ...
- 美团点评SQL优化工具SQLAdvisor开源
介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 SQL 优化方式包括但不限于:业务层优化.SQL逻 ...
- 【MySQL】MySQL数据库SQL优化工具 SQL Tuning Expert for MySQL(收费)
1.概述 SQL Tuning Expert for MySQL 是 Tosska 公司推出的针对MySQL的SQL优化工具. 该工具不仅让DBA或者SQL开发人员,轻松阅读和理解执行计划,而且能产生 ...
- mysql的sql优化工具下载_MySQL SQL查询优化工具EverSQL
概述 一般来说,SQL查询优化器分析给定查询的许多选项,预估每个选项的成本,最后选择成本最低的选项.如果查询优化器选择了错误的计划,则性能差异可能从几毫秒到几分钟.幸运的是,现在有许多第三方SQL查询 ...
- SQL优化工具分享-SQL Tuning Expert Pro for Oracle Trial
做开发离不开对于数据库的接触,也离不开对SQL的接触,一个优质的SQL,可以让系统性能提升到质的飞跃,一个糟糕的SQL,可以让系统奔溃.所以对于我们开发人员来说,很需要一个SQL性能优化工具,在这种情 ...
- 美团点评开源 SQL 优化工具 SQLAdvisor 测试报告
0x00 目录 0x00 目录 0x01 SQLAdvisor 介绍 0x02 SQLAdvisor 原理 0x03 SQLAdvisor 测试 3.1 SQLAdvisor 安装 3.2 导入测试数 ...
- SQL 优化工具 Explain
## SQL优化工具Explain MySQL是关系型数据库中的一种,**查询功能强,数据一致性高,数据安全性高,支持二级索引**.但性能方面稍逊与非关系型数据库,特别是百万级别以上的数据,很容易出现 ...
- SQL优化篇:如何成为一位写优质SQL语句的绝顶高手
(Structured Query Language)标准结构化查询语言简称SQL,编写SQL语句是每位后端开发日常职责中,接触最多的一项工作,SQL是关系型数据库诞生的产物,无论是什么数据库,MyS ...
- SQL优化篇:如何成为一位写优质SQL语句的绝顶高手!
写SQL语句不难,稍微系统学习过数据库相关技术的人都能做到,但想要写好SQL却也不是一件易事,在大多数编写SQL的时候,很多人都是以实现需求为原则去撰写的,当一条SQL写出来之后,只要能满足业务需求就 ...
- web项目接到请求之后执行sql特别慢_小米开源!SQL优化工具,人工智能帮你 Rewrite...
本文出自头条号老王谈运维,转载请说明出处. 作为一名优秀的DBA或系统管理员,工作总是充满各种"艰辛"! 你在工作中是否遇到过这样的情况:有一个慢SQL需要优化,但是通过分析执行计 ...
最新文章
- 使用PHP生成和获取XML格式数据
- Python使用xlrd和xlwt读取和写入excel详细教程
- Android服务之Service(其一)
- SQL:使用备份向导、SQL命令、导出数据三种方式对已建立的数据库进行备份
- Swift之深入解析构造过程和析构过程
- 在Forms验证模式下,实现多个站点(SubDomain相同)共享同一用户登录状态
- 如何退出_农民退出的宅基地如何利用?农村宅基地征收如何补偿?
- 磁铁还能用来爬铁墙?简直惊呆了
- html画特殊图形(待修改)
- react+ant练习
- fetch first mysql_MySQL多版本并发控制机制(MVCC)源码浅析
- 大表join大表_阿里开发规范:超过三张表,禁止join骚操作
- 瞬间“友尽”的五大整蛊代码,快去安排你的小伙伴吧!
- php stack trace,PHP 异常处理
- uni-app小程序,实现根据中文首字母排序功能
- Opensuse 初学者使用指北?
- 谈我们的团队文化建设
- RK61键盘使用说明书
- ASP.NET MVC 分部页 PartialViewResult
- 环境工程原理知识点总结
热门文章
- 【C++从青铜到王者】第二十七篇:特殊类设计
- testbench通用模板
- Debian Qualcomm Atheros QCA61x4 Wireless Network Adapter - 网卡驱动
- Voxengo音频插件合集:Voxengo Total Bundle Mac
- DSPE-PEG-Hydroxyl DSPE-PEG-OH 磷脂-聚乙二醇-羟基概述
- 马尔科夫链(Markov Chain),机器学习和人工智能的基石
- 【国产化电脑】如何有效避免违规外联
- matlab数字图像处理灰度变换ppt课件,数字图像处理 灰度变换.ppt
- Java后台开发学习进阶路线
- 中国石油大学计算机专业调剂信息,中国石油大学(北京)地球科学学院2020级硕士研究生招生缺额信息发布公告...