智能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 Optimizer通过尝试每一种可能来激发数据库内部SQL优化器的潜能,从而达到性能优化的目的,这是数据库内部SQL优化器不能做到的。下面介绍一下这个工具的一些主要功能模块。
Dell SQL Optimizer for SQL Server的SQL优化流程
- 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。
- 查找SQL(Find SQL)
利用Find SQL模块可以方便快速地从不同的地方找出可以调优或者存在优化空间的SQL语句,如:计划缓存(Plan Cache)和SQL跟踪(SQL Traces) 。通过Top N的方式查看不同运行时统计信息(如:CPU时间和逻辑读等等)识别出消耗资料最多的SQL语句。一旦找出需要调优的SQL语句,根据这些SQL语句的使用场景可以发送到SQL重写(SQL Rewrite)、计划控制(Plan Control)和优化索引(Optimize Indexes)模块进行优化。
- 扫描SQL(Scan 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语句 )的更多相关文章
- SQL Server 如何设置数据库的默认初始大小和自动增长大小
我们在SQL Server中新建数据库的时候,可以选择数据库文件及日志文件的初始大小.自动增长大小和最大大小,如下图所示: 可以通过设置更改数据库初始大小.自动增长大小和最大大小: 但是其实在SQL ...
- 提升NginxTLS/SSL HTTPS 性能的7条优化建议
自2018年7月起,谷歌浏览器开始将" HTTP"网站标记为"不安全".在过去的几年中,互联网已经迅速过渡到HTTPS,Chrome浏览器的流量超过70%,并且 ...
- SQL Server 维护计划实现数据库备份(Step by Step)(转)
SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server ...
- 比较sql server两个数据库
比较sql server两个数据库 http://opendbdiff.codeplex.com/ http://www.red-gate.com/ 有SQL Compare和SQL Prompt 开 ...
- Linux/Android 性能优化工具 perf
/***************************************************************************** * Linux/Android 性能优化工 ...
- 大型php网站性能和并发访问优化方案(转载自php中文网)
网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎 ...
- 大型php网站性能和并发访问优化方案
网站性能优化对于大型网站来说非常重要,一个网站的访问打开速度影响着用户体验度,网站访问速度慢会造成高跳出率,小网站很好解决,那对于大型网站由于栏目多,图片和图像都比较庞大,那该怎么进行整体性能优化呢? ...
- Oracle 10G强大的SQL优化工具:SQL Tuning Advisor
p { margin-bottom: 0.25cm; direction: ltr; color: rgb(0, 0, 0); line-height: 120%; orphans: 2; widow ...
- 深入浅出Calcite与SQL CBO(Cost-Based Optimizer)优化
目录 Calcite简介与CBO介绍 Calcite背景与介绍 SQL优化与CBO Calcite优化器 HepPlanner优化器与VolcanoPlanner优化器 Calcite优化样例代码介绍 ...
随机推荐
- C语言基础学习运算符-关系运算符
比较大小 首先,我们得先了解一下布尔类型.C语言的C99标准支持布尔类型,关键字为_Bool,用于表示逻辑值true与false.C语言用值1表示true, 用值0表示false.因此布尔类型实际上是 ...
- 平稳退化,JS和HTML标记分离,极致性能的JavaScript图片库
index.html <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- C# 代码中 计算某个函数 或WebService 请求花费时间
/// 计算请求所花费的时间 System.Diagnostics.Stopwatch watch = new System.Diagnostics.Stopwatch(); watch.Start( ...
- 转:cookie和session(一)——原理
文章来自于:http://blog.csdn.net/half1/article/details/21645545 一.cookie和session是什么? cookie是服务器留在客户端中的小文 ...
- Android-RecyclerView-Item点击事件设置
在上一篇博客Android-RecylerView初识中提到,RecyclerView不再负责Item视图的布局及显示,所以RecyclerView也没有为Item开放OnItemClick等点击事件 ...
- -_-#微信内置JavaScript API WeixinJSBridge
微信相关的 js 操作:分享.网络.菜单 微信内置JsAPI之WeixinJSBridge微信WeixinJSBridge API续
- 辗转相除法_欧几里得算法_java的实现(求最大公约数)
辗转相除法,又被称为欧几里德(Euclidean)算法, 是求最大公约数的算法. 当然也可以求最小公倍数. 算法描述 两个数a,b的最大公约数记为GCD(a,b).a,b的最大公约数是两个数的公共素因 ...
- Android的JNI开发
变量的定义 int i; typedef int x;//定义一个int x数据类型 x a=10; printf("size=%d",sizeof(i));//获取int类型长度 ...
- Jmeter安装设置
Linux: 其实下载之后就可以用,不过为了能在命令行直接敲入”jmeter"就可以调出Jmeter程序,还需要进行如下设置. 1. Download apache-jmeter-2.12. ...
- java笔记8之选择结构IF
注意1 A比较表达式无论简单还是复杂,结果必须是boolean类型 B:if语句控制的语句体如果是一条语句,大括号可以省略: 如果是多条语句,就不能省略.建议永远不要省 ...