SQL优化系列(四)- 不修改SQL源码,如何让SQL飞? SQL优化系列(二)- 不修改SQL源码,如何让SQL飞?

 更改SQL执行计划

 

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

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

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

 

执行计划

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

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

 

不修改原始SQL只改变原始SQL的执行计划

如果我们能够实现下面的原理图,不就可以了吗?

步骤一:为原始SQL产生不同的等价SQL, 例如SQL 1, SQL 2... SQL N;

步骤二:选择性能最优的等价SQL, 例如SQL 2;用SQL 2 的执行计划替换原始SQL的执行计划;

步骤三:查看原始SQL的执行计划是否改变,测试原始SQL的性能是否提高;

最佳实践

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

2. 连接数据库;

3. 点击 Tune SQL 右边的+号;

4. 输入原始SQL;

    关于如何查找数据库中性能差的SQL,参考 SQL优化系列(二)- 不修改SQL源码,如何让SQL飞?  之查找性能差的SQL语句

    本例中,我们把之前保存在文件中的SQL语句粘贴到SQL Editor中。

     

5. 点击Tune按钮, 选择测试运行的方式,点击OK按钮,产生大量的等价SQL;

     

6. 我们可以看到:

     原来的SQL执行时间:     6.22秒

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

     

7. 点击 Deploy Plan, 用最优的等价SQL的执行计划替换原始SQL的执行计划

8. 在Deploy SQL Patch 窗口中,点击Deploy按钮;

    

9. 测试原始SQL, 确认优化效果    

   原始SQL的执行计划已经发生变化,SQL Tuning Expert 提醒我们Test Run来确认调优效果。

    

   

    点击Test Run, 原始SQL的执行时间由原来的 6.22秒变成了现在的2.56秒。

     

    结论:在不修改SQL源代码的情况下,成功优化了SQL的性能。    

    

猜你喜欢

转载自www.cnblogs.com/dbexpert/p/9045767.html