CN DBMove 过程中一些最常见最需要注意的问题
下面列举了CN 产品在MOVE –IN过程中常见的问题, 供参考,并期望CN开发能够重视并注意这些问题:
1. 查询过程中,表未指定表提示WITH (NOLOCK)
例如:
2. 语法错误,这个应该是最严重的级别,在开发过程中,并未进行最基本的语法检查
例如:
3. 变量赋值未使用TOP 1
例如:
4. LEFT JOIN使用不当,带有WHERE条件的LEFT JOIN实际上应该使用INNER JOIN
例如:上面那个语句,再如下面这个语句:
5. 多个表联合查询时,表未指定表所属别名
例如:
6. 使用不恰当的动态SQL语句
例如:下面个动态SQL就没有必要
7. UNION 与 UNION ALL不加区分
例如:一般情况下,我们首先考虑使用UNION ALL,如果的确需要过滤相同记录,才使用UNION
8. 子查询和JOIN没有合理应用
例如,下面这个例子,有时候使用子查询,性能会得到极大的提升
9. 关于主键,使用INT类型并且指定IDENTITY属性的列作为主键是比较好的方式
例如,下面这个就不合理
10. 表变量没有主键,临时表也存在这样的问题
例如:像下面这个语句,表变量可能会产生上万记录数,如果表变量和其他表做JOIN,可能会有很大的性能问题,如果给个自增列的字段为主键,在JOIN时有机会走主键索引以提高性能
11. 字符类型宽度不明确
例如:
12. 更新大量数据没有使用分批次处理
例如:
- 13. 在WHERE条件中的列应用函数
例如:应该避免在列上使用函数,它会使索引失效
14. 没有必要的逐条处理
例如:
15. 错误的事务处理
例如:这个比较常见并且比较严重
另一个例子:
16. 处理XML时,在获取文本节点没有指定text()函数,同时多数指定的相对路径
例如:
17. 其他比较常见是对SQL语句格式化、书写规范问题还比较常见,这里不用举例
18. 其他暂时保留,不太常见
转载于:https://www.cnblogs.com/luoting/archive/2013/03/01/2938141.html