关于SQL优化方面的建议
- - 数据库 - ITeye博客SQL优化主要是看执行计划. 1. 扫描机制 全表扫描还是索引扫描. 建立索引的方式也很重要,根据不同的情况建立不同的索引. 如果SQL中包含了函数,索引是不起效果的,需要建立“函数索引”. 5. 视图最好是建立在基表上面,千万不要视图里面嵌套视图,会大大降低性能. 曾文的SQL例子 视图里面有rowid.
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%的索引 ——》全表——》索引反倒会慢一点,所以需要看具体的执行计划。