写存储过程,效率问题
在写存储过程中,我们应该注意什么规范?
这样才能使我们的代码效率得到提高,应该尽量避免什么?应该多用什么?
请高手赐教!!!!
谢谢!
------解决方案--------------------毕人之见:第一:参数使用的数据类型和长度应合理。
比如,一个可以用varchar(15)存的,不要用varchar(20),少占用内存。
第二:就是insert,update,delete,select语句的优化。
第三:尽量少用exits
------解决方案--------------------(1)避免在条件中对字段做计算
(2)避免模糊查询。使用LIKE进行模糊查询时,如果使用万用字符(%)打头,同样导致无法使用索引查找数据
(3)避免“查询不要什么数据,其他都要”的负向查询。因为索引是有顺序行的,如果做负向查询,往往也会导致索引失效。
(4)使用or、in做条件是要小心。In在SQL SERVER中处理时,类似于or条件的处理。在使用or条件时,如果条件中有一个没有适合的索引,则整个条件都用不上索引。
(5)避免在字段上使用函数。
------解决方案--------------------能用表变量的情况下尽量不用临时表。
------解决方案--------------------应该尽量避免什么?应该多用什么?
---------------------------------------
凡事都没有绝对的,要根据具体的情况来决定了,
同一个表在数据量少和以后数据量多的时候最优的查询方式也是不同的,这个问题研究起来就很复杂了,最好不要以为存储过程写好了就完事了,以后还是需要根据实际情况改的