首页 > 数据库 > Oracle > Oracle SQL性能抖动排查与处理总结
按照SQL性能=cpu time+wait time,考虑执行计划突变,有多种原因,统计信息收集错,谓词条件out of range统计信息,灌入大量数据未收集,分区表灌数据收集时机不对,条件倾斜,数据量变化,绑定变量peeking问题,DML影响一致性块重构导致逻辑读增加,数据从buffer cache刷出,表和索引碎片增加,索引失效以及优化器BUG,ACS,cardinality feedback,dynamic sampling等影响执行计划。 大并发下的性能抖动,结合 等待事件分析,特别是row lock,CBC latch,DML的buffer busy waits,log file sync,并发的row cache mutex,index contention,row lock contention,序列cache不足导致sq等待,RAC的gc等待等 OS层: os的cpu争用,os的io争用和性能抖动,网络抖动。 治理建议(按优先级) 1. 固定执行计划:SQL Profile、SPM、Outline、Hint(如CARDINALITY、LEADING) 2. 统计信息稳定:锁定统计信息、增量收集、直方图精细化管理 3. 减少热块争用: 序列缓存加大(CACHE 1w+) 反向键索引、哈希分区索引 分区表+分区索引 4. 减少commit频率:批量提交、APPEND+NOLOGGING(可接受场景) 5. RAC优化: 应用分区(Service分区) 热点表分区+分区-wise join 调整GC相关参数(_gc_affinity_time等) 6. OS层治理: CPU:绑定CPU、隔离资源(cgroup、Oracle Resource Manager) IO:redo/log/data分离,使用低延迟存储,监控云盘QoS 网络:RDMA、Jumbo Frame、私网隔离
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/7655508/viewspace-3117672/ ,如需转载,请注明出处,否则将追究法律责任。