人工智能自动sql优化工具--SQLTuning for SQL Server_MsSql

针对这种情况,人工智能自动SQL优化工具应运而生。现在我就向大家介绍这样一款工具:SQLTuning for SQL Server。

1. SQL Tuning 简介

SQL Turning是Quest公司出品的Quest Central软件中的一个工具。

QuestCentral(图1)是一款集成化、图形化、跨平台的数据库管理解决方案,可以同时管理Oracle、DB2 和 SQL server 数据库。它包含了如下的多个工具:

数据库管理(DBA)
 数据库监控(Monitoring Pack)
 数据库诊断 (Spotlight Diagnostics)
 数据库分析 (Database Analysis)
 SQL优化 (SQL Tuning)
 空间管理 (Space Management)
 压力测试 (Load Generator)
 数据生成 (Data Generator)
 PL/SQL 开发 (TOAD)
 专家建议 (Knowledge Expert)

今天,我们只介绍其中的SQL优化(SQL Tuning for SQL Server) 的使用方法。

图1 quest central界面

2. 使用SQL Tuning 优化SQL

下面我们用SQLServer自带的Northwind数据库为例,帮助大家了解如何使用SQLTuning优化SQL。

(1)建立连接。
在QuestCentral主界面上的“Database”树上选择“SQLServer”,然后在下方出现的“Tools”框中选择“SQLTuning”选项,打开“Lanch SQL Tuning for SQL ServerConnections”对话框(图2)。我们在这里建立数据库服务器的连接,以后的分析工作都会在它上面完成。

图2 “建立连接”对话框

双击“NewConnection”图标,在弹出窗口中输入数据库的信息,单击“OK”,然后单击“Connect”即可。

(2)分析原始SQL语句 。
在打开窗口的“OriangalSQL”文本框内输入需要分析的原始SQL语句,代码如下:

/*查询卖出价个不同的同一货物名称*/
select DISTINCT c.CompanyName,p.ProductName
from [Order Details] od1,[Order Details] od2 , Orders o1 , Orderso2,Customers c, Products p
where od1.UnitPrice<>od2.UnitPrice andod1.ProductID=od2.ProductID
and od1.OrderID=o1.OrderID
and od2.OrderID=o2.OrderID
and o1.CustomerID=o2.CustomerID
and o1.CustomerID=C.CustomerID

首先在界面左上方选择数据库,然后点击工具栏上的“Execute”按钮,执行原始的SQL语句,SQLTuning会自动分析SQL的执行计划,并把分析结果显示到界面上(图3)。

图3 分析原始SQL语句

(3)优化SQL。

现在我们点击工具栏上的“Optimize Statement”按钮,让SQLTuning开始优化SQL,完成后,可以看到SQLTuning产生了34条与原始SQL等价的优化方案(图4)。

图4 SQL优化方案

(4)获得最优SQL。

接下来,我们来执行上面产生的优化方案,以选出性能最佳的等效SQL语句。在列表中选择需要执行的优化方案(默认已全部选中),然后点击工具栏上的“Execute”按钮旁边的下拉菜单,选择“ExecuteSelected”。等到所有SQL运行完成后,点击界面左方的“TuningResolution”按钮,可以看到最优的SQL已经出来啦,运行时间竟然可以提高52%!(图5)

图5 “Tuning Resolution”界面

(5)学习书写专家级的SQL语句。

通过上面的步骤,我们已经可以实现自动优化SQL语句,但更重要的是,我们还可以学习如何书写这样高性能的SQL语句。点击界面左方的“CompareScenarios”按钮,我们可以比较优化方案和原始SQL中的任意2条SQL语句,SQLTuning会将它们之间的不同之处以不同颜色表示出来,还可以在下方的“执行计划”中,通过比较两条SQL语句的执行计划的不同,来了解其中的差异(图6)。

图6 “Compare Scenarios”界面

3.小结

SQLTuning等人工智能自动SQL优化工具的出现,为我们节省出大量的时间和精力。借助这些工具的帮助,书写专家级的SQL语句将不再是难事。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索sql优化工具
SQLTuning
mssql数据库优化、mssql优化、mssql 查询优化、mssql 2008 优化、mssql like 优化,以便于您获取更多的相关知识。

时间: 2024-10-22 20:09:11

人工智能自动sql优化工具--SQLTuning for SQL Server_MsSql的相关文章

智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 )

原文:智能SQL优化工具--SQL Optimizer for SQL Server(帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 ) SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句   SQL Optimizer for SQL Server 让 SQL Server DBA或者T-SQL开发人员能够主动地识别潜在的SQL性能问题,通过扫描和分析SQL语句进行人工智能自动SQL优化.Dell SQL Opt

智能运维:美团SQL Advisor的自动化SQL优化实现

介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 SQL 优化方式包括但不限于:业务层优化.SQL逻辑优化.索引优化等.其中索引优化通常通过调整索引或新增索引从而达到 SQL 优化的目的.索引优化往往可以在短时间内产生非常巨大的效果.如果能够将索引优化转化成工具化.标准化的流程,减少人工介入的工作量,无疑会大大提高DBA的工作效率. SQLAdvisor 是由美团点评公司北京DBA团队开发维护的

踩坑CBO,解决那些坑爹的SQL优化问题

本文根据DBAplus社群第93期线上分享整理而成.   讲师介绍  丁俊 新炬网络首席性能优化专家 SQL审核产品经理   DBAplus社群联合发起人,<剑破冰山-Oracle开发艺术>副主编. Oracle ACEA,ITPUB开发版资深版主,十年电信行业从业经验.   本次分享大纲: CBO优化器存在哪些坑 CBO优化器坑的解决之道 加强SQL审核,将性能问题扼杀于襁褓之中 分享现场FAQ   CBO( Cost Based Optimizer)优化器是目前Oracle广泛使用的优化器

数据库SQL优化大总结之 百万级数据库优化方案

网上关于SQL优化的教程很多,但是比较杂乱.近日有空整理了一下,写出来跟大家分享一下,其中有错误和不足的地方,还请大家纠正补充. 这篇文章我花费了大量的时间查找资料.修改.排版,希望大家阅读之后,感觉好的话推荐给更多的人,让更多的人看到.纠正以及补充.   1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id

MS SQL基础教程:调用SQL Server工具和向导

在企业管理器中可以很方便地调用其它SQL Server 工具,如SQL Server Query Analyzer (查询分析器).SQL Server Profiler (跟踪器)等,只须从"Tools (工具)"菜单中选择相应的工具即可. SQL Server 2000 中提供了大量的向导工具,可以引导用户完成一系列的数据库与服务器管理工作.可以从"Tools (工具)"菜单中选择"Wizards" 选项,或从工具栏中选择图标就会出现如图5-

CloudDBA初体验:SQL优化建议

数据库诊断和优化过程具有相当的复杂性,通常需要专业的DBA来解决.但在云计算的今天,人力运维和支撑已经变得不可能,自动化,智能化运维和服务支持日益迫切. 阿里云数据库团队在这方面不断的探索和积累,产出了CloudDBA.其目的就是要把我们已知问题和最佳实践能够以最简单的方式告诉用户,把我们多年使用数据库的经验传承给用户,方便客户使用云上数据库,给客户带来直接的价值.CloudDBA同时也在服务着内部业务,4000+的数据库实例之前需要一个team的运维人员,到现在我们只有一个同学,运维效率大幅提

SQL优化技巧指南_MsSql

对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描 select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注.描述.评论之类的可以设置为 NULL,其他的,最好不要使用NULL. 不要以为 NULL 不需要空间,比如:char(100) 型,在字段建立

SQL Server 2005 的性能优化工具

由于现在项目的数据量非常的庞大,日均新增数据几乎达到5位数,数据库的性能就成了整个项目的关键,如何才能做到最优化?不但从数据库逻辑的设计还是物理设计都应该仔细的规划和考虑. 物理上的优化有最笨的方法就是提高数据库的性能,再高个档次就是合理组织数据库文件和Temp数据库存放的位置了,逻辑上优化无非就是有良好的数据库设计数据量大的时候三范式就有一点站不住了,适当的数据冗余也是提高数据库检索效率的有效手段,但这些都需要经验丰富的家伙才能游刃有余,好在SQL2005提供了数据库优化工具使得优化这个工作在

SQL Server 2005的性能优化工具

由于现在项目的数据量非常的庞大,日均新增数据几乎达到5位数,数据库的性能就成了整个项目的关 键,如何才能做到最优化?不但从数据库逻辑的设计还是物理设计都应该仔细的规划和考虑. 物理上的优化有最笨的方法就是提高数据库的性能,再高个档次就是合理组织数据库文件和Temp数据 库存放的位置了,逻辑上优化无非就是有良好的数据库设计数据量大的时候三范式就有一点站不住了,适 当的数据冗余也是提高数据库检索效率的有效手段,但这些都需要经验丰富的家伙才能游刃有余,好在 SQL2005提供了数据库优化工具使得优化这