SQL优化的几个方向

来源:互联网 发布:文件粉碎软件 编辑:程序博客网 时间:2024/05/22 16:42

关于优化项目的方向:
1.SQL语句逻辑的优化。
sql的优化其实可以在网上查到很多,这就不多说了。
2.索引的建立。
建立索引这部分是优化的重点。首先索引列的选择,如果语句中包含where和group by,那么索引列选择where后面等号左侧为列名右侧为定值而不是列名的字段和like左侧的字段名,例如:a1=‘1’和a2 like ‘%1’;如果只含有group by ,那么只能是能是group by后面的字段为索引。能这样做的前提是关联表的关联列为主键,含有偶or和函数的字段基本不走索引。索引可以以多个索引列组成的索引组的形式存在,这个可以查看执行计划,看怎样组合效率最高。索引在重建后需要在服务端runstats一下,收集分布统计信息,这样优化器才能选择最佳的访问路径,否则在索引删除又重建后优化器可能无法选择最佳的访问路径。
3.对于数据量大的表,在优化的这一层的前面,加一层(将ods的数据先抽取到这一层),在新加的这层再次加工数据。首先说明一下,对于两库操作的项目,这种优化方案不一定行的通,它不仅需要修改取数逻辑,还需要修改工作流的执行顺序。例如一个在from后面有子查询的select语句,select a,b,c from (select * from people where d!=2) where a=’001’,将其拆为两个简单的逻辑分别取数,对于修改工作流的执行顺序,因为实施人员进行跑批有一个顺序,需要将新加的取数逻辑添加上。
4.修改报表模板的逻辑。目前这种方法还没有用,暂不解释。