优化SQL

SQL开发人员从源代码中发现一条跑得很慢的SQL, 如何优化?

DBA从AWR报告中发现一条跑得很慢的SQL,没有源代码或者不想修改源代码怎么办?

SQL自动优化工具SQL Tuning Expert Pro for Oracle

下载: https://www.tosska.cn/tosska-sql-tuning-expert-pro-tse-pro-for-oracle-download-free-trial-zh/

产品介绍: https://www.tosska.cn/tosska-sql-tuning-expert-pro-tse-pro-for-oracle-zh/

执行计划

具体介绍之前,我们先要了解什么是执行计划。

执行计划是数据库系统根据SQL源码和相关对象的统计资料产生的查询方案。在数据库服务器硬件环境和网络确定的情况下,SQL的执行计划决定了SQL的性能。

 

最佳实践

1. 打开软件Tosska SQL Tuning Expert Pro for Oracle;

2. 连接数据库;

3. 点击 “优化SQL” 右边的+号,创建一个会话;

4. 在SQL编辑器中,输入需要优化的SQL

5. 点击“自动优化SQL”按钮, 选择测试运行的方式,点击”确认“按钮之后,开始产生大量的等价SQL并自动测试运行;

6. 工具产生了205条等价SQL,我们可以看到目前最优的SQL是 SQL 116, SQL执行时间从6.07秒提升到0.06秒。

我对这个优化结果非常满意了,于是点击“停止” 停止优化。

原来的SQL执行时间:        6.07 秒

最优的等价SQL执行时间: 0.06 秒

7. 如果您是SQL开发人员,选中最快的 SQL 116, 复制 SQL文本,粘贴到源代码中替换原始SQL,然后编译程序,调优就完成了。

如果您是运维DBA,没有源代码或者不想修改源代码,忽略本步骤,执行步骤8, 9, 10, 11;

8. 选中最优的SQL 116, 点击 部署 SQL Patch, 用最优的等价SQL的执行计划调整原始SQL的执行计划

9. 在部署SQL Patch 窗口中,点击部署按钮;

10. 关闭“部署SQL Patch”窗口之后,原始SQL的执行计划已经发生变化,SQL Tuning Expert 提醒我们测试运行原始SQL来确认调优效果。

选中原始SQL, 点击“测试运行当前SQL”

11. 神奇的事情出现了。我们没有改变原始SQL,但是原始SQL的执行时间由原来的 6.07秒变成了现在的0秒。

结论:

  • 对于SQL开发人员来说,优化SQL后,用最优的等价SQL替换原始SQL;
  • 对于运维DBA来说,在不修改SQL源代码的情况下,为原始SQL部署了最优的执行计划,成功优化了SQL的性能。

SQL优化神器 - Tosska SQL Tuning Expert for Oracle

SQL优化系列(二)- 优化Top SQL

SQL优化系列(三)- 用最少的索引获得最大的性能提升

SQL优化系列(一)- 优化SQL的更多相关文章

  1. Spark SQL概念学习系列之Spark SQL 优化策略(五)

    查询优化是传统数据库中最为重要的一环,这项技术在传统数据库中已经很成熟.除了查询优化, Spark SQL 在存储上也进行了优化,从以下几点查看 Spark SQL 的一些优化策略. (1)内存列式存 ...

  2. 性能优化系列七:SQL优化

    一.SQL在数据库中的执行过程 二.执行计划 1. ACID 原子性:一个事务(transaction)中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节.事务在执行过程中发生错误,会 ...

  3. Spark SQL概念学习系列之Spark SQL概述

    很多人一个误区,Spark SQL重点不是在SQL啊,而是在结构化数据处理! Spark SQL结构化数据处理 概要: 01 Spark SQL概述 02 Spark SQL基本原理 03 Spark ...

  4. Spark SQL概念学习系列之分布式SQL引擎

    不多说,直接上干货! parkSQL作为分布式查询引擎:两种方式 除了在Spark程序里使用Spark SQL,我们也可以把Spark SQL当作一个分布式查询引擎来使用,有以下两种使用方式: 1.T ...

  5. Spark SQL概念学习系列之Spark SQL的简介(一)

    Spark SQL提供在大数据上的SQL查询功能,类似于Shark在整个生态系统的角色,它们可以统称为SQL on Spark. 之前,Shark的查询编译和优化器依赖于Hive,使得Shark不得不 ...

  6. Spark SQL概念学习系列之Spark SQL 架构分析(四)

    Spark SQL 与传统 DBMS 的查询优化器 + 执行器的架构较为类似,只不过其执行器是在分布式环境中实现,并采用的 Spark 作为执行引擎. Spark SQL 的查询优化是Catalyst ...

  7. Spark SQL概念学习系列之Spark SQL入门

    前言 第1章   为什么Spark SQL? 第2章  Spark SQL运行架构 第3章 Spark SQL组件之解析 第4章 深入了解Spark SQL运行计划 第5章  测试环境之搭建 第6章 ...

  8. Spark SQL概念学习系列之Spark SQL入门(八)

    前言 第1章   为什么Spark SQL? 第2章  Spark SQL运行架构 第3章 Spark SQL组件之解析 第4章 深入了解Spark SQL运行计划 第5章  测试环境之搭建 第6章 ...

  9. Spark SQL概念学习系列之Spark SQL基本原理

    Spark SQL基本原理 1.Spark SQL模块划分 2.Spark SQL架构--catalyst设计图 3.Spark SQL运行架构 4.Hive兼容性 1.Spark SQL模块划分 S ...

  10. Sql Server系列:Microsoft SQL Server Management Studio模板资源管理器

    模板资源管理器是Microsoft SQL Server Management Studio的一个组件,可以用来SQL代码模板,使用模板提供的代码,省去每次都要输入基本代码的工作. 使用模板资源管理器 ...

随机推荐

  1. HZOI2019 B. 那一天她离我而去 最小环

    题目大意:https://www.cnblogs.com/Juve/articles/11219089.html 那一天,我们......行啦,不要帮出题人脑补画面了,我们来正经的题解 我们发现我们可 ...

  2. vue.js_10_vue的路由

    1.vue-router的基本使用 1>安装vue-rouder路由模块 <script src="js/vue-2.4.0.js"></script> ...

  3. jeecms技术预研

      版权声明:本文版权归云焰所有,转载请注明. https://blog.csdn.net/yan_dk/article/details/27874461 1    Jeecms框架 1.1      ...

  4. vue 路由(二级)配置及详细步骤

    1.安装插件(可以选择在初始化项目的时候安装) cnpm install vue-router --save-dev 2.将插件全局引入到项目中(main.js) import VueRouter f ...

  5. 关于Cesium 官方教程

    最近一直在准备第一次QQ群的Cesium基础培训公开课,虽说使用Cesium也有段日子了,但是要说对Cesium了解有多深,还真不一定.原因是一直以来我都是用哪里学哪里.基于多年开发三维数字地球的底层 ...

  6. java的堆栈通俗理解

    java内存模型有堆内存和栈内存, 初学者可能看官方解释很模糊 堆:new 出来的对象或者数组都存放在堆中: List <String> list =new ArrayList<St ...

  7. 使用C#反射实现用户控件调用父页面方法

    using System.Reflection; MethodInfo mi = this.Page.GetType().GetMethod("GetUserName"); //该 ...

  8. 入门servlet:request获取请求行数据

    /** * 演示Request对象获取请求行数据 */ @WebServlet("/test") public class RequestDemo1 extends HttpSer ...

  9. LOJ 6497 图

    LOJ 6497 图 题意 有图\(n\)点,每点可为黑或白,其中一些点颜色已定. 初时图无边,于每对\(i<j\),可由\(i\)向\(j\)连有向边,或不连. 称黑白相间之路径为交错路径. ...

  10. Java中移动文件或目录的方法盘点

    本文不再更新,可能存在内容过时的情况,实时更新请移步原文地址:Java中移动文件或目录的方法盘点: import org.apache.commons.io.FileUtils; import jav ...