sql查询优化小结

来源:互联网 发布:php全栈 招聘 编辑:程序博客网 时间:2024/05/22 12:21

一、查询条件精确,针对有参数传入情况


二、SQL逻辑执行顺序

FROM-->JOIN-->WHERE-->GROUP-->HAVING-->DISTINCT-->ORDER-->TOP


三、横向 

 查询需要的字段 ,当在SQL语句中连接多个表时,请使用表的别名并把别名前缀于每个Column上这样一来,就可以减少解析的时间并减少那些由Column歧义引起的语法错误。


四、少做重复工作 

控制同一语句的多次执行,特别是一些基础数据的多次执行是很多程序员很少注意的 ,减少多次的数据转换 ,杜绝不必要的子查询和连接表,子查询在执行计划一般解释成外连接,多余的连接表带来额外的开销 。


五、关于零时表#与表变量@ 

如果语句很复杂,连接太多,可以考虑用临时表和表变量分步完成 ;如果需要多次用到一个大表的同一部分数据,考虑用临时表和表变量暂存这部分数据 ;如果需要综合多个表的数据,形成一个结果,可以考虑用临时表和表变量分步汇总这多个表的数据 。关于临时表和表变量的选择,在数据量较多的情况下,临时表的速度反而更快 SELECT INTO会比CREATE TABLE + INSERT INTO的方法快,但是SELECT INTO会锁定TEMPDB的系统表SYSOBJECTS、SYSINDEXES、SYSCOLUMNS,在多用户并发环境下,容易阻塞其他进程 。


六、子查询 时注意事项

子查询可以用IN、NOT IN、EXISTS、NOT EXISTS引入 

NOT IN、NOT EXISTS的相关子查询可以改用LEFT JOIN代替写法 

如果保证子查询没有重复 ,IN、EXISTS的相关子查询可以用INNER JOIN 代替 

IN的相关子查询用EXISTS代替 

 

七、索引 操作注意事项

避免对索引字段进行计算操作 

SELECT ID FROM T WHERE NUM/2=100  应改为: SELECT ID FROM T WHERE NUM=100*2 

避免在索引字段上使用NOT,<>,!= 

避免在索引列上使用IS NULL和IS NOT NULL 

避免在索引列上出现数据类型转换 

避免在索引字段上使用函数 

避免建立索引的列中使用空值 

不要对索引字段进行多字段连接 

WHERE FAME+'. '+LNAME='HAIWEI.YANG' 

应改为: 

WHERE FNAME='HAIWEI' AND LNAME='YANG' 

 

八、关联时候条件写完整

多表连接的时候,连接条件必须写全,宁可重复,不要缺漏 ;连接条件尽量使用聚集索引 。

 

九、其他 

在可以使用UNION ALL的语句里,使用UNION ALL 

避免在WHERE子句中使用IN,NOT IN,OR 

避免使用耗费资源的操作,带有DISTINCT,UNION,MINUS,INTERSECT,ORDER BY的SQL语句会启动SQL引擎执行,耗费资源的排序(SORT)功能. DISTINCT需要一次排序操作, 而其他的至少需要执行两次排序 

LIKE ‘%5400%' 这种查询不会引用索引,而LIKE ‘X5400%'则会引用范围索引。

 

以上提出的sql查询优化注意点大家不妨在写sql语句的时候多多关注下,会提高不少查询效率。





原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 会计从业停考了怎么办 黑龙江龙育黄了档案怎么办 科目四档案丢了怎么办 从上海调档案到杭州怎么办 户口迁移身份证变更护照怎么办 有中国签证的孩子怎么办户口 大学生户口在学校怎么办签证 户口在南方人才市场怎么办签证 报警电话接到说方言的怎么办 学生去新加坡旅游签证怎么办 出入境的受理编号不见了怎么办 职工下岗档案单位丢失怎么办退休 大学毕业档案在自己手里怎么办 青岛李沧区房产证加名字怎么办手续 公积金迟交了1天怎么办 科一预约不上怎么办 科目一考试没去怎么办 科目一成绩单丢了怎么办 考科目二身份证丢了怎么办 考科目三身份证丢了怎么办 考科目一身份证丢了怎么办 滴滴顺风车被永久封禁怎么办 三岁宝宝智力发育迟缓怎么办 学车体检听力没过怎么办 学车体检听力不过关怎么办 离职体检发现听力有问题怎么办 买的二手房土地证没过户怎么办 b2扣了9分怎么办 上海网约车车证怎么办 b2驾照累计12分怎么办 c1本扣满12分怎么办 太原公共自行车丢了怎么办 在太原出租车丢了东西怎么办 太原社保卡丢了怎么办 太原铁路医保卡丢了怎么办 学车体检视力不合格怎么办 换驾照色弱被拒怎么办 在上海考驾照贵怎么办 驾驶证有效期过了半年怎么办 资格证脱审2年了怎么办 换驾驶证时眼睛近视了怎么办