初学者必读:提高SQL执行效率的几点建议
提高SQL执行效率的建议;
◆尽量不要在where中包含子查询;
关于时间的查询尽量不要写成:where to _ char (dif _ date,' yyyy-mm-DD ')= to _ char(' 2007-07-01 ',' yyyy-mm-DD ');
◆筛选条件中,能筛选出数量记录的条件必须放在where子句的末尾;
将首先处理FROM子句中写入的最后一个表(驱动表)。如果FROM子句包含多个表,则必须选择记录数最少的表作为基本表。如果有三个以上的连接查询,则需要选择交集表作为基表,引用其他表引用的表;
◆使用绑定变量。
◆尽量不要使用或放在哪里
◆用EXISTS和NOT IN替换IN;与不存在;
◆避免对索引列使用计算:其中sal * 12 > 25000
◆用IN代替or:其中loc _ id = 10或loc _ id = 15或loc _ id = 20
◆避免使用IS NULL和IS NOT NULL在索引列上;
◆始终使用索引的第一列;
◆用UNION-ALL替换Union;
◆避免更改索引列的类型:选择...from EMP where empno =' 123 ',因为隐式数据类型转换,to_char(EMPNO)='123 ',因此,不会采用index,一般出现在动态SQL语句被字符串拼凑的时候;
◆'!不会使用“=”索引;
◆优化分组依据;;
◆避免带有相似参数的通配符。LIKE '4YE% '使用索引,但LIKE '%YE '不使用索引。
◆避免使用复杂的正式表达式,例如select * from customer where zip code like“98 _ _”。即使索引建立在邮政编码上,在这种情况下,仍然采用顺序扫描。如果语句改为SELECT * FROM CUSTOMER WHERE ZIP CODE >“98000”,执行查询时将使用索引进行查询,显然会大大提高速度;
◆尽可能清晰地完成SQL语句,尽可能少的让数据库工作。例如,在编写SELECT语句时,需要明确指出查询字段的表名。尽量不要使用SELECT *语句。在组织SQL语句时,尽量按照数据库的习惯来组织。
位律师回复
0条评论