你的位置:首页 > 数据库

[数据库]存储过程中使用参数和变量作为查询条件对性能的影响?


今日匆忙中写了2各存储过程,查询的表,查询的结构,返回的值基本一样,就是对参数的使用有点不同。

晚上到家想着优化下,看看能不能合并了。在几次重写后,拿着几个版本查看执行计划时,发现个以前没注意的问题。

第一个SP传入的2个时间参数直接用于里面的查询条件。

第二个SP传入的2个时间参数,在SP内又定义了2个时间变量,将参数通过简单计算后Set给了2个变量,然后在查询中使用这2个变量作为条件。

这2个SP,在执行开销上相差数倍。

在外面套一层SP,把时间算好了再当参数传给第二个SP,修改SP直接使用参数作为查询的条件,2个SP的开销就一样了。

这是怎么回事呢,SP里面对参数和变量的使用会对性能有多大的影响呢?

暂时没时间去仔细了解和分析。

 

希望看到的朋友不吝赐教。