SQL优化技巧
现观察线上系统运行发现,线上某些业务查询存在等待时间长问题,后核查发现,部分问题出现在对数据库操作上Cost大部分时间,后根据网上各位前辈提供的优化技巧解决大部分问题,现写下本篇文章,一来巩固加深自己学习的优化技巧,二来方便正在为sql优化迷茫的猿友们提供一下思路和方法,共同进步,一起成长~ 1、现状描述 sql执行时间长、数据查询慢 2、问题对象 sql执行语句(特别是多表多条件关联查询数据) 3、理论知识 1、Oracle优化器 sql优化器:sql数据库中的优化器又叫查询优化器(QueryOptimizer)。它是SQL分析和执行的优化工具,它负责生成、制定SQL的执行计划。 sql优化器优化方式 基于规则的优化方式(Rule-BasedOptimization,简称为RBO) 它根据指定的规则顺序,对指定的表进行执行计划的选择。它着一套严格的使用规则,只要你按照它去写SQL语句,无论数据表中的 内容怎样,也不会影响到你的“执行计划”,也就是说RB对数据不“敏感”。要求开发人员了解RBO的各项细则。在sql 10g中完全被CBO取代。 基于代价的优化方式(Cost-Based Optimization,简称为CBO)。 CBO是一种比RBO更加合理、可靠的优化器,它是从sql 8中开始引入,在sql10g中完全取代RBO。CBO是计算各种可能“执行 计划”的“代价”