WEB开发网
开发学院数据库MSSQL Server sql相关系能指南 阅读

sql相关系能指南

 2012-07-20 15:31:48 来源:WEB开发网   
核心提示: 1. 不同表的同一字段要有相同的类型,比如t_audit_report表的claim_id为varchar2类型,sql相关系能指南,而t_claim表的该字段为number型,这样会导致2个表关联使用claim_id关联的时候,12. 如下情况下,Oracle不会使用索引,使用不了索引,2.

  1. 不同表的同一字段要有相同的类型,比如t_audit_report表的claim_id为varchar2类型,而t_claim表的该字段为number型,这样会导致2个表关联使用claim_id关联的时候,使用不了索引。
2. 尽量使用UNION ALL,而不是UNION
3. 避免写过于复杂的SQL,不一定要一个SQL解决问题,可以考虑使用多个小的SQL语句来实现同样的功能。
4. 查询尽量用确定的列名,少用*
5. 将in子句替换成exists子句
6. 使用NOT EXISTS替代NOT IN
7. 外键需要加索引,否则删除父表的记录时会导致子表上的全表锁。
8. 删除不必要的索引
9. 添加冗余字段,减少大表的关联
10. 避免在索引列上使用函数,如果无法避免,可以添加函数索引,在写SQL语句时,需要使用一致的函数。比如系统中对t_user表的字段account有的地方使用lower函数,有的地方却使用upper函数。
11. 如果明细查询语句很复杂,统计语句不要重用明细查询语句。因为统计语句不需要查询详细信息,可以去掉很多表的关联。
12. 如下情况下,Oracle不会使用索引,我们应该避免
l 在索引列上使用前置通配符
l 在索引列上使用NOT
l 在索引列上使用IS NULL和IS NOT NULL
l 索引列的类型自动转换
其他
1. 在写代码时,注重性能的同时不要忽略可读性.
2. 是否考虑过修改需求来提升性能?
3. 是否考虑过修改程序的设计来提高性能?

Tags:sql 相关 指南

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接