存储过程如何通过 Management Studio 在 10 秒内运行,但通过 TableAdapter 需要 15 分钟才能获得相同的输入?它是可重复的,这意味着我在每个环境中至少运行了 3 次,而 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'
在 TableAdapter 中,我使用StoredProcedure
CommandType
anddbo.uspMovesReportByRouteStep
作为CommandText
. 我正在从 ASP.NET 页面调用表适配器,尽管如果我也尝试在本地“预览数据”它会在 30 秒内超时。
提供存储过程是不切实际的,因为它有超过 100 行长,并且依赖于许多其他 UDF 以及同一数据库和其他数据库上的视图。
使用任何一种方法,所有其他存储过程似乎都在大约同一时间运行。这怎么可能?