关于SQL优化方面的提议

关于SQL优化方面的建议

2014-01-25

 

SQL优化主要是看执行计划

1.  扫描机制   全表扫描还是索引扫描

2. 主外键索引

3. 建立索引的方式也很重要,根据不同的情况建立不同的索引

4. 如果SQL中包含了函数,索引是不起效果的,需要建立“函数索引”

 

5.  视图最好是建立在基表上面,千万不要视图里面嵌套视图,会大大降低性能

 

6. 曾文的SQL例子  视图里面有rowid

     同时建议最好用的order by ,group by 等需要建立在索引上面

      hibernate 的 “=” 号默认的是用 like

 

DBA建议能用SQL一句查出来的就不要用游标

 

再生产的库在运行的时候有一个on line的关键字,可以帮我们在数据库还在运行的状态中建立索引

 

我们有一个SQL编码规范,在哪里?需要看看。在CQ的编码规范里面

 

子查询,内部的SQL不要和外部的SQL有关联,同时要尽可能的让内部的SQL数据量减小

同时最能过滤数据的条件,同时数据量最小的表要放在最下面(或者是最后面)

 

hibernate自动生成的SQL有时候也需要看看 性能怎么样,不要迷信hibernate。

 

除了SQL层面,还可以从系统层面(session ,application等系统层面,但是DBA说以后11G的会自能化管理,可调性不大),数据库的参数的优化

最关键的可以根据业务对数据进行归档

 

DBA说 80%的索引 ——》全表——》索引反倒会慢一点,所以需要看具体的执行计划。