据我所知,WITH RECOMPILE选项强制优化器重建存储过程的查询计划但是你希望什么时候发生?
关于何时使用WITH RECOMPILE选项以及何时不使用,有哪些经验法则?
将它放在每个sproc上都有什么有效的开销?
如何通过Management Studio在10秒内运行存储过程,但是通过TableAdapter为相同的输入花费15分钟?它是可重复的,这意味着我在每个环境中至少运行了三次,而Management Studio的速度通常要快100倍.
我正在使用.net 2.0和SQL Server 2000
在SQL Server Management中,我正在执行它:
EXEC [dbo].[uspMovesReportByRouteStep]
@RouteStep = 12000,
@RangeBegin = N'12/28/08',
@RangeEnd = N'1/18/9'
Run Code Online (Sandbox Code Playgroud)
在TableAdapter中,我正在使用a StoredProcedure CommandType和dbo.uspMovesReportByRouteStepfor CommandText.我正在从ASP.NET页面调用表适配器,但如果我尝试在本地"预览数据",它会在30秒内超时.
提供存储过程是不切实际的,因为它超过100行,依赖于同一数据库和其他数据库上的许多其他UDF和视图.
所有其他存储过程似乎使用任一方法在大约相同的时间运行.这怎么可能?