sql优化
来源:互联网 发布:mac设置桌面图标 编辑:程序博客网 时间:2024/06/07 00:48
● SQL文要求简洁明了,不能有多余的关键词或外连接。
● 如果返回结果可能很大,尽量避免使用JOIN。
● 多表连接时,表格名称要求使用简介的别名(如:a、b等)。
● SELECT语句禁止使用*符号,必须明确需要的字段名称。
● SELECT语句不要返回所有列,根据应用需要返回特定的列。
● 如果是组合主键,查询谓词是主键,谓词顺序与组合主键的列顺序保持一致。
● 当谓词使用不等于(<>)条件时,如果谓词列是枚举类型,把它改写成用or连接起来的等于条件。
● 如果几个SQL文谓词列相同,要求它们的顺序相同。
● LIKE条件尽量不要出现内包含条件(%mike%),可以使用前包含条件(mike%)。
● 在查询谓词的左边不要使用函数。
● 如果SQL文含非常多的谓词并且存在or关系,可以将SQL文拆分成两个SQL文以提高执行效率(这样做使执行计划清晰并且添加合适的索引)。
● 将含not in语句改为not exists实现:
DELETE FROM tb01 WHERE c1 not in (SELECT c1 FROM tb02)
优化后:
DELETE FROM tb01 WHERE NOT EXISTS(SELECT c1 FROM tb02 WHERE tb01.c1= tb02.c1)
in和EXISTS,需看数据量
like在可接受的情况下,都使用后匹配mike%
谓词或操作符的的左边尽量不使用函数(尽sql有效,操作集合,对C#无意义,但可参考)
DELETE UserLog WHEREDATEDIFF(DAY,LogDate,getdate())>30
DELETE UserLog WHERE LogDate>DateAdd(DAY,-30,getdate()),可扩展索引
常用索引,早期加,应用索引再后期调优阶段增加,根据界面、使用频率来增加。
外部关键pk要少,可少用关链,可拆分数据库,但最好模块外不建外键,内部可外部,以保证数据的完整性。
- SQL优化
- SQL优化
- SQL优化
- SQL优化
- SQL优化
- sql优化
- sql优化
- Sql优化
- sql优化
- sql优化
- SQL 优化
- sql优化
- SQL优化
- SQL优化
- SQL优化
- SQL优化
- SQL优化
- SQL优化
- MVC框架
- .net 对文件的相关操作
- android WiFi 开关代码
- 软件需求
- Hibernate学习笔记(九)【高级篇】并发、Session管理
- sql优化
- [LeetCode]Binary Tree Zigzag Level Order Traversal
- Makefile 的编写过程(实践)
- 如何使用SOCKET 发送HTTP1.1 GET POST请求包
- Junit的annotation(注释、注解)
- Android Sensor传感器系统架构初探
- aodv-uu-0.9.6编译移植Mini6410 组建ad-hoc网络 .
- WIN7的EPROCESS和PEB和WINXPSP3的EPROCESS
- 与林昊一起探讨OSGi