关于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%的索引 ——》全表——》索引反倒会慢一点,所以需要看具体的执行计划。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?