SQL语句是对数据库进行操作的惟一途径,对数据库系统的性能起着决定性的作用。对于同一条件下的SQL语句写法有很多,其中一些写法往往对性能又有很大影响。但是每个人掌握SQL语言的水平不同,如何才能保证写出高性能的SQL呢?

针对这种情况,人工智能自动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语句,代码如下:

?
1
2
3
4
5
6
7
8
/*查询卖出价个不同的同一货物名称*/
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 for SQL Server相关推荐

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

    SQL Optimizer for SQL Server 帮助提升数据库应用程序性能,最大程度地自动优化你的SQL语句 SQL Optimizer for SQL Server 让 SQL Serve ...

  2. mysql的sql优化工具下载_MySQL SQL查询优化工具EverSQL

    概述 一般来说,SQL查询优化器分析给定查询的许多选项,预估每个选项的成本,最后选择成本最低的选项.如果查询优化器选择了错误的计划,则性能差异可能从几毫秒到几分钟.幸运的是,现在有许多第三方SQL查询 ...

  3. 美团点评SQL优化工具SQLAdvisor开源

    介绍 在数据库运维过程中,优化 SQL 是 DBA 团队的日常任务.例行 SQL 优化,不仅可以提升程序性能,还能够降低线上故障的概率. 目前常用的 SQL 优化方式包括但不限于:业务层优化.SQL逻 ...

  4. 美团点评开源 SQL 优化工具 SQLAdvisor 测试报告

    0x00 目录 0x00 目录 0x01 SQLAdvisor 介绍 0x02 SQLAdvisor 原理 0x03 SQLAdvisor 测试 3.1 SQLAdvisor 安装 3.2 导入测试数 ...

  5. 【MySQL】MySQL数据库SQL优化工具 SQL Tuning Expert for MySQL(收费)

    1.概述 SQL Tuning Expert for MySQL 是 Tosska 公司推出的针对MySQL的SQL优化工具. 该工具不仅让DBA或者SQL开发人员,轻松阅读和理解执行计划,而且能产生 ...

  6. SQL优化工具分享-SQL Tuning Expert Pro for Oracle Trial

    做开发离不开对于数据库的接触,也离不开对SQL的接触,一个优质的SQL,可以让系统性能提升到质的飞跃,一个糟糕的SQL,可以让系统奔溃.所以对于我们开发人员来说,很需要一个SQL性能优化工具,在这种情 ...

  7. SQL 优化工具 Explain

    ## SQL优化工具Explain MySQL是关系型数据库中的一种,**查询功能强,数据一致性高,数据安全性高,支持二级索引**.但性能方面稍逊与非关系型数据库,特别是百万级别以上的数据,很容易出现 ...

  8. web项目接到请求之后执行sql特别慢_小米开源!SQL优化工具,人工智能帮你 Rewrite...

    本文出自头条号老王谈运维,转载请说明出处. 作为一名优秀的DBA或系统管理员,工作总是充满各种"艰辛"! 你在工作中是否遇到过这样的情况:有一个慢SQL需要优化,但是通过分析执行计 ...

  9. [转]mysql的sql优化工具

    原标题:DBA的五款最佳SQL查询优化工具,收藏了 一般来说,SQL查询优化器分析给定查询的许多选项,预估每个选项的成本,最后选择成本最低的选项.如果查询优化器选择了错误的计划,则性能差异可能从几毫秒 ...

最新文章

  1. Udacity机器人软件工程师课程笔记(二十九) - 全卷积网络(FCN)
  2. 遍历Collection,避免在循环中删除对象时避免ConcurrentModificationException
  3. Effective Java:对于所有对象都通用的方法
  4. python安装不上怎么办_python依赖安装失败怎么办
  5. Java+SSM+Jsp+Mysql项目大学生健康管理系统
  6. Excel怎么快速制作二维码图片?
  7. deepin 惠普打印驱动安装
  8. 多元线性回归矩阵求导
  9. 适用于上门预约的门店小程序源码及管理系统,包含小程序源码!
  10. Win10此设备不支持接收 Miracast 无法投影的解决方法
  11. 中国科技论文在线期刊模板出现了格式问题,怎么解决?
  12. Excel常用技巧(一)
  13. FZU 2198 快来快来数一数(矩阵快速幂)
  14. android8强制将app移到sd卡,小内存手机 APP强制转移至SD卡教程
  15. 室内电子地图-自定义室内地图-室内地图在线工具
  16. 京东智能客服言犀意图体系搭建和意图识别技术介绍
  17. android各种文件夹路径
  18. 软件测试学习笔记(二)软件测试基本技术
  19. 产品经理的需求分析四个层次
  20. 嵌入式文件系统:NTFS和EXFAT比较

热门文章

  1. 【Jquery选择器】
  2. QQ自定义个人文件夹
  3. windowmediaplayer控件出现未能加载的问题
  4. CSU2020期中测试模拟题1 问题 B: 小帅要缴税
  5. 【Raw use of parameterized class ‘xxx‘ 】
  6. 定时任务的 执行时间设置规则
  7. openGauss之gsql工具的使用
  8. 三峡大学计算机与信息工程学院,三峡大学计算机与信息学院.doc
  9. 拥抱 Android Studio 之四:Maven 仓库使用与私有仓库搭建
  10. 求余小技巧 码农场 » POJ 3641 Pseudoprime numbers 题解 《挑战程序设计竞赛》