我有一个运行良好的存储过程。许多Web表单都可以访问它,它需要20个参数。但是突然之间,它无缘无故地停止工作,然后重新编译以对其进行修复。可能是什么原因?顺便说一句,这是一个非常复杂的存储过程,它访问10个表以提取数据并应用排序。
如果我使用SQL Server运行存储过程,它将正确地返回数据而没有任何问题,但是当我使用.net应用程序执行相同的过程时,它将继续加载和加载并且最后不返回任何内容。可能是连接问题。
答案 0 :(得分:0)
最简单的解决方法是从前端获取参数。然后在内部将它们重新分配给另一组变量。因为拥有这么多参数会破坏您的执行计划并导致参数嗅探。例如,脚本为:
alter proc xyz
(
@startdate date
, @Stopdate date
) as
declare @internal_Startdate as date
, @internal_Enddate as date
set @internal_Startdate = @StartDate;
set @internal_Enddate = @EndDate;
--..select logic here..