智能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 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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQL ServerSQL优化器是SQL Server数据库引擎的一个组件,它负责优化和执行SQL查询语句。SQL优化器的主要目标是生成执行计划,即在执行查询之前确定查询的最佳执行方式。 SQL优化器的工作原理如下: 首先,它会分析查询语句的结构和条件,以确定查询的最佳执行路径。它会考虑表的索引、统计信息、查询的类型等因素,以确定使用哪个索引、连接哪些表、使用哪种操作符等。 然后,它会根据分析的结果生成多个潜在的执行计划,并为每个计划估计成本。成本估计基于访问数据的方法和所需的CPU和IO资源等因素。 最后,它会选择成本最低的执行计划,并将其传递给执行引擎执行。 SQL优化器的优化策略包括了很多方面,例如: 1. 确定最佳的连接方式:SQL优化器会分析查询的连接方式(如嵌套循环连接、哈希连接、合并连接),并选择效率最高的连接方式。 2. 确定最佳的索引:SQL优化器会评估每个查询的索引选择,并决定使用哪个索引或是否需要创建新的索引。 3. 确定最佳的查询重写:SQL优化器会尝试对查询进行重写,并更改查询的逻辑结构,以获得更高效的执行计划。 4. 估算成本:SQL优化器会估计每个执行计划的成本,并选择最低成本的计划执行。 5. 实时统计信息更新:SQL优化器会监控表的统计信息,并确保这些信息是最新的。这有助于生成更准确的执行计划。 总结起来,SQL ServerSQL优化器是一个非常重要的组件,它能够根据查询的结构和条件,生成最佳的执行计划,提高查询的性能和效率。它通过分析索引、统计信息、连接方式等因素,并选择最佳的执行路径和操作符,从而使查询能够以最小的成本完成。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值