开发sql优化经常使用

 

1、检查SQL语句关联到的表有多少个 数据库

一条SQL语句若是关联到的表个数太多,就会因为排列组合的基数增大,致使CBO在产生执行计划的时候,可选执行计划太多,这不只会增长CBO得到最优执行计划的时间,还可能使SQL语句的执行计划变得很不稳定,让同一条SQL语句在某个状况下出现执行效率较低的状况.通常而言,参与SQL语句的表个数不要超过5个,尤为是参与链接的表不是主键关联的基表时,表的链接个数更不要太多,若是的确要关联那么多表,就要考虑是否能够将SQL语句拆分,或者是不是表结构的设计不太合理,须要考虑方法加以改善。 函数

2SQL语句关联主表中的WHERE条件是否有合适的索引 spa

咱们都很害怕SQL语句在执行时出现全表扫描,尤为是大表的全表扫描,这在多数状况下不无道理,由于咱们的数据大可能是在线实时处理的,此时SQL语句选择的数据量不能太多,响应时间却要求极高,这说明数据的选择性通常较好,经过全表扫描可能不太合理,每每须要经过区分度高的索引来直接筛选数据。若是SQL中关联主表的WHERE条件上有索引,查看执行计划时也确实用到了这个索引,问题就不会太大,若是没有索引,就要考虑其余的已知条件是否能够有效筛选数据,仍是不行的话,建议对该表新建一个索引进行评估。 设计

3SQL语句中是否使用了不恰当的函数 索引

SQL 语句中不恰当地使用函数,尤为是在索引字段上使用函数,会下降 SQL 语句的执行效率,这几乎成了咱们的共识,不过,咱们在 SQL 开发时,仍然会不经意的、在不必定要使用函数的地方使用函数,这一点在日期函数的使用上表现得比较突出,比较典型的写法为: trunc( 表的日期字段 )>= <=trunc( 传入的日期变量 ), 其实这种写法能够转变为仅在变量这部分使用函数,而没必要要在数据库的字段上使用函数。
相关文章
相关标签/搜索