转 https://blog.csdn.net/huaieli1/article/details/78720400
一,sql性能优化基础方法论
对于功能,我们可能知道必须改进什么;但对于性能问题,有时我们可能无从下手。其实,任何计算机应用系统最终队可以归结为:
-
cpu消耗
-
内存使用
-
对磁盘,网络或其他I/O设备的输入/输出(I/O)操作。
但我们遇到性能问题时,要判断的第一点就是“在这三种资源中,是否有哪一种资源达到了有问题的程度”,因为这一点能指导我们搞清楚“需要优化重构什么”和“如何优化重构它”
二,sql调优领域
应用程序级调优
-
sql语句调优
-
管理变化调优
示例级调优
-
内存
-
数据结构
-
实例配置
操作系统交互
-
I/O
-
swap
-
Parameters
三,sql优化方法
-
优化业务数据
-
优化数据设计
-
优化流程设计
-
优化sql语句
-
优化物理结构
-
优化内存分配
-
优化I/O
-
优化内存竞争
-
优化操作系统
四,sql优化过程
-
定位有问题的语句
-
检查执行计划
-
检查执行计划中优化器的统计信息
-
分析相关表的记录数、索引情况
-
改写sql语句、使用HINT、调整索引、表分析
-
有些sql语句不具备优化的可能,需要优化处理方式
-
达到最佳执行计划