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

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
RDS SQL Server Serverless,2-4RCU 50GB 3个月
推荐场景:
简介: 原文:智能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
目录
相关文章
|
2天前
|
SQL 关系型数据库 MySQL
MySQL进阶突击系列(07) 她气鼓鼓递来一条SQL | 怎么看执行计划、SQL怎么优化?
在日常研发工作当中,系统性能优化,从大的方面来看主要涉及基础平台优化、业务系统性能优化、数据库优化。面对数据库优化,除了DBA在集群性能、服务器调优需要投入精力,我们研发需要负责业务SQL执行优化。当业务数据量达到一定规模后,SQL执行效率可能就会出现瓶颈,影响系统业务响应。掌握如何判断SQL执行慢、以及如何分析SQL执行计划、优化SQL的技能,在工作中解决SQL性能问题显得非常关键。
|
12天前
|
SQL Oracle 关系型数据库
如何在 Oracle 中配置和使用 SQL Profiles 来优化查询性能?
在 Oracle 数据库中,SQL Profiles 是优化查询性能的工具,通过提供额外统计信息帮助生成更有效的执行计划。配置和使用步骤包括:1. 启用自动 SQL 调优;2. 手动创建 SQL Profile,涉及收集、执行调优任务、查看报告及应用建议;3. 验证效果;4. 使用 `DBA_SQL_PROFILES` 视图管理 Profile。
|
29天前
|
数据库 Windows
SqlServer数据恢复—SqlServer数据库所在分区损坏的数据恢复案例
一块硬盘上存放的SqlServer数据库,windows server操作系统+NTFS文件系统。由于误操作导致分区损坏,需要恢复硬盘里的SqlServer数据库数据。
|
2月前
|
SQL Oracle 数据库
使用访问指导(SQL Access Advisor)优化数据库业务负载
本文介绍了Oracle的SQL访问指导(SQL Access Advisor)的应用场景及其使用方法。访问指导通过分析给定的工作负载,提供索引、物化视图和分区等方面的优化建议,帮助DBA提升数据库性能。具体步骤包括创建访问指导任务、创建工作负载、连接工作负载至访问指导、设置任务参数、运行访问指导、查看和应用优化建议。访问指导不仅针对单条SQL语句,还能综合考虑多条SQL语句的优化效果,为DBA提供全面的决策支持。
93 11
|
22天前
|
SQL 分布式计算 Java
Spark SQL向量化执行引擎框架Gluten-Velox在AArch64使能和优化
本文摘自 Arm China的工程师顾煜祺关于“在 Arm 平台上使用 Native 算子库加速 Spark”的分享,主要内容包括以下四个部分: 1.技术背景 2.算子库构成 3.算子操作优化 4.未来工作
|
3月前
|
SQL 存储 BI
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
gbase 8a 数据库 SQL合并类优化——不同数据统计周期合并为一条SQL语句
|
15天前
|
关系型数据库 MySQL 数据库连接
数据库连接工具连接mysql提示:“Host ‘172.23.0.1‘ is not allowed to connect to this MySQL server“
docker-compose部署mysql8服务后,连接时提示不允许连接问题解决
|
1天前
|
关系型数据库 MySQL 数据库
Docker Compose V2 安装常用数据库MySQL+Mongo
以上内容涵盖了使用 Docker Compose 安装和管理 MySQL 和 MongoDB 的详细步骤,希望对您有所帮助。
61 42
|
19天前
|
缓存 关系型数据库 MySQL
【深入了解MySQL】优化查询性能与数据库设计的深度总结
本文详细介绍了MySQL查询优化和数据库设计技巧,涵盖基础优化、高级技巧及性能监控。
151 0
|
2月前
|
存储 Oracle 关系型数据库
数据库传奇:MySQL创世之父的两千金My、Maria
《数据库传奇:MySQL创世之父的两千金My、Maria》介绍了MySQL的发展历程及其分支MariaDB。MySQL由Michael Widenius等人于1994年创建,现归Oracle所有,广泛应用于阿里巴巴、腾讯等企业。2009年,Widenius因担心Oracle收购影响MySQL的开源性,创建了MariaDB,提供额外功能和改进。维基百科、Google等已逐步替换为MariaDB,以确保更好的性能和社区支持。掌握MariaDB作为备用方案,对未来发展至关重要。
66 3