SQL Optimizer for SQL Server

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

SQL Optimizer for SQL Server 让 SQL Server DBA或者T-SQL开发人员能够主动地识别潜在的SQL性能问题,通过扫描和分析SQL语句进行人工智能自动SQL优化。Dell SQL Optimizer通过尝试每一种可能来激发数据库内部SQL优化器的潜能,从而达到性能优化的目的,这是数据库内部SQL优化器不能做到的。下面介绍一下这个工具的一些主要功能模块。

Dell SQL Optimizer for SQL ServerSQL优化流程

  • SQL重写(SQL Rewrite

大家都知道,同一条SQL语句,不同的写法性能可能不一样。这个模块采用了独特的人工智能算法(反馈式搜索:如下图所示)进行自动重写SQL语句。就算没有掌握深入的T-SQL知识,通过这 个模块也可以改写SQL文本找出性能更优的写法,最终达到优化SQL性能的目的。也就是说,利用这个工具任何人都可以写出专家级的SQL语句。

下面载图显示“反馈式搜索重写引擎”强大的重写能力,其友好的界面和丰富的测试运行方法可以方便地比较和找出与原始SQL等阶的性能高效写法。

在智能等级设置为3时,一共为这条SQL语句找出了231条具有不同执行计划的等阶SQL的写法。就算一个经验丰富资深DBA并且对T-SQL语法了如指常,也不可能在短时间内去尝试这么多种可能!

测试运行所有重写的SQL语句,找出Alt122是运行时间最快的SQL语句。

Compare面页可以进行比较不同的可选SQL重写(下图显示运行时间最快的Alt122是被改写成了INNER JOIN并且加了TABLE HINT):

 

  • 计划控制(Plan Control

计划控制模块同样也是采用了人工智能算法为你的SQL语句产生计划指南(Plan Guide)解决方案。通过计划指南技术,可以实现不需要修改源代码进行优化SQL语句。 如果SQL语句中包括了字面常量,将会提供一些参数化与SQL计划指南组合的解决方案。SQL Server 2005就提供了计划指南技术,要用好这个技术进行SQL调优可不是一件容易的事,SQL Server2005的后续版本对此也没有做很多的改进。Plan Control 通过尝试不同的查询提示组合产生计划指南,设定优化目的进行测试运行为你的SQL语句找出最佳的计划指南。部署找出的最佳计划指南就可以提升SQL语句的性能。这很大程度上简化的计划指南的应用。

  • 优化索引(Optimize Indexes

针对一条SQL语句建立索引,通常不是一件难事。如果为了提高某一条SQL语句的性能盲目地创建一些索引,很有可能会给其它SQL语句带来性能下降的影响,严重的话会导致整个系统性能的下降。Optimize Indexes模块采用遗传算法对一批SQL语句进行综合评估产生建立索引建议的脚本,通过这个脚本建立相应的索引达到提高整个系统的性能。如果想进一步 了解这个模块,可以阅读SQL优化大师Richard To博客的相关文章:A Revolutionary Index Advisor

  • 查找SQLFind SQL

利用Find SQL模块可以方便快速地从不同的地方找出可以调优或者存在优化空间的SQL语句,如:计划缓存(Plan Cache)和SQL跟踪(SQL Traces) 。通过Top N的方式查看不同运行时统计信息(如:CPU时间和逻辑读等等)识别出消耗资料最多的SQL语句。一旦找出需要调优的SQL语句,根据这些SQL语句的使用场景可以发送到SQL重写(SQL Rewrite)、计划控制(Plan Control)和优化索引(Optimize Indexes)模块进行优化。

  • 扫描SQLScan SQL

这个模块可以从文件(源代码文件、二进制文件及SQL跟踪文件等等)或数据库对象(存储过程、触发器等等)中扫描出SQL语句。通过分析执行计划对这些扫描出来的SQL语句逐一分类。优先检查被定义为“有问题的(Problematic)”和“复杂的(Complex)”分类,进一步查看SQL语句文本及其执行计划。将SQL文本发送至SQL 重写、计划控制或优化索引模块进行自动优化找出更好的方案(SQL重写、计划指南、索引建议)。

最新版本下载地址:https://support.software.dell.com/sql-optimizer-for-sql-server/download-new-releases

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

  1. SQL Server 如何设置数据库的默认初始大小和自动增长大小

    我们在SQL Server中新建数据库的时候,可以选择数据库文件及日志文件的初始大小.自动增长大小和最大大小,如下图所示: 可以通过设置更改数据库初始大小.自动增长大小和最大大小: 但是其实在SQL ...

  2. 提升NginxTLS/SSL HTTPS 性能的7条优化建议

    自2018年7月起,谷歌浏览器开始将" HTTP"网站标记为"不安全".在过去的几年中,互联网已经迅速过渡到HTTPS,Chrome浏览器的流量超过70%,并且 ...

  3. SQL Server 维护计划实现数据库备份(Step by Step)(转)

    SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server  ...

  4. 比较sql server两个数据库

    比较sql server两个数据库 http://opendbdiff.codeplex.com/ http://www.red-gate.com/ 有SQL Compare和SQL Prompt 开 ...

  5. Linux/Android 性能优化工具 perf

    /***************************************************************************** * Linux/Android 性能优化工 ...

  6. 大型php网站性能和并发访问优化方案(转载自php中文网)

               网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎 ...

  7. 大型php网站性能和并发访问优化方案

    网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎么进行整体性能优化呢? ...

  8. Oracle 10G强大的SQL优化工具:SQL Tuning Advisor

    p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; orphans: 2; widow ...

  9. 深入浅出Calcite与SQL CBO(Cost-Based Optimizer)优化

    目录 Calcite简介与CBO介绍 Calcite背景与介绍 SQL优化与CBO Calcite优化器 HepPlanner优化器与VolcanoPlanner优化器 Calcite优化样例代码介绍 ...

随机推荐

  1. 使用微妙计算PHP脚本执行时间

    在PHP中,大多数的时间格式都是以UNIX时间戳表示的,而UNIX时间戳是以s(秒)为最小的计量时间的单位.这对某些应用程序来说不够精确,所以可以调用microtime()返回当前UNIX时间戳和微妙 ...

  2. MLlib-聚类

    聚类 例子 流聚类 例子 聚类 MLlib支持k-means聚类,一种最常用的聚类方法,将数据点聚成指定数据的簇.MLlib实现了一种k-means++的并行变种,叫做kmeansII.MLlib的实 ...

  3. hdu Co-prime

    题意:求出在一个区间[A,B]内与N互质的个数 . 思路: 先求出n的质因子,然后求出与N的质因子不互质的个数然后总个数减去就是.用位运算二进制表示那个因子用到过,实现容斥原理.在1到n之间是c倍数的 ...

  4. java.lang.NoClassDefFoundError: javax/servlet/ServletContext

    方法1:把SpringBoot中main方法所在的class不再继承org.springframework.boot.context.web.SpringBootServletInitializer即 ...

  5. tree .git

    $ tree .git .git ├── branches ├── config ├── description ├── FETCH_HEAD ├── gitk.cache ├── HEAD ├── ...

  6. BZOJ3709: [PA2014]Bohater

    3709: [PA2014]Bohater Time Limit: 5 Sec  Memory Limit: 128 MBSec  Special JudgeSubmit: 339  Solved: ...

  7. HBase HFileBlock

    HFileBlock官方源码注释:   Reading HFile version 1 and 2 blocks, and writing version 2 blocks. In version 1 ...

  8. C++ STL之string常用指令

    string,大小可变的字符串,有些类似于C中的字符数组. 只记载本人在ACM中常用的函数,并且全部经过程序测试. 1.初始化 string s1;——默认构造函数s1为空串 string s2(s1 ...

  9. F - Rain on your Parade - hdu 2389(二分图匹配,Hk算法)

    题意:给一些人和一些伞的坐标,然后每个人都有一定的速度,还有多少时间就会下雨,问最多能有多少人可以拿到伞. 分析:题意很明确,可以用每个人和伞判断一下是否能够达到,如果能就建立一个联系.不过这道题的数 ...

  10. JS 时间格式CST转GMT

    近几天,在做百度地图时,需要转换时间格式并做显示,但是发现显示的时间格式,出现了错乱,二者的日期和小时都出现了变动.例如: 原始时间格式:Thu Aug 18 20:38:54 CST 2016 转换 ...