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

本文涉及的产品
云数据库 RDS SQL Server,独享型 2核4GB
简介: 原文:智能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优化。
原文: 智能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

相关实践学习
使用SQL语句管理索引
本次实验主要介绍如何在RDS-SQLServer数据库中,使用SQL语句管理索引。
SQL Server on Linux入门教程
SQL Server数据库一直只提供Windows下的版本。2016年微软宣布推出可运行在Linux系统下的SQL Server数据库,该版本目前还是早期预览版本。本课程主要介绍SQLServer On Linux的基本知识。 相关的阿里云产品:云数据库RDS SQL Server版 RDS SQL Server不仅拥有高可用架构和任意时间点的数据恢复功能,强力支撑各种企业应用,同时也包含了微软的License费用,减少额外支出。 了解产品详情: https://www.aliyun.com/product/rds/sqlserver
目录
相关文章
|
11天前
|
SQL Oracle 关系型数据库
sql语句创建数据库
在创建数据库之前,请确保你有足够的权限,并且已经考虑了数据库的安全性和性能需求。此外,不同的DBMS可能有特定的最佳实践和配置要求,因此建议查阅相关DBMS的官方文档以获取更详细和准确的信息。
|
4天前
|
SQL 关系型数据库 MySQL
利用 SQL 注入识别数据库方法总结
利用 SQL 注入识别数据库方法总结
|
4天前
|
SQL 关系型数据库 MySQL
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
【MySQL】:探秘主流关系型数据库管理系统及SQL语言
11 0
|
8天前
|
SQL 调度 数据库
【Database】Sqlserver如何定时备份数据库和定时清除
【Database】Sqlserver如何定时备份数据库和定时清除
18 2
|
10天前
|
SQL Java 数据库连接
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
Java从入门到精通:2.3.2数据库编程——了解SQL语言,编写基本查询语句
|
10天前
|
SQL 运维 数据库
sql数据库引擎失败
sql数据库引擎失败
|
11天前
|
SQL 缓存 数据库
sql 数据库优化
SQL数据库优化是一个复杂且关键的过程,涉及多个层面的技术和策略。以下是一些主要的优化建议: 查询语句优化: 避免全表扫描:在查询时,尽量使用索引来减少全表扫描,提高查询速度。 使用合适的子查询方式:子查询可能降低查询效率,但可以通过优化子查询的结构或使用连接(JOIN)替代子查询来提高性能。 简化查询语句:避免不必要的复杂查询,尽量使SQL语句简单明了。 使用EXISTS替代IN:在查询数据是否存在时,使用EXISTS通常比IN更快。 索引优化: 建立合适的索引:对于经常查询的列,如主键和外键,应创建相应的索引。同时,考虑使用覆盖索引来进一步提高性能。 避免过多的索引:虽然索引可以提高查询
|
11天前
|
SQL Oracle 关系型数据库
sql 数据库教学
SQL(Structured Query Language,结构化查询语言)是用于管理关系数据库管理系统(RDBMS)的标准编程语言。它涵盖了数据的插入、查询、更新和删除,数据库模式的创建和修改,
|
数据库 SQL 数据安全/隐私保护
|
22天前
|
SQL 人工智能 算法
【SQL server】玩转SQL server数据库:第二章 关系数据库
【SQL server】玩转SQL server数据库:第二章 关系数据库
61 10