如何通過Management Studio在10秒內運行存儲的程序,但是通過TableAdapter爲同一輸入需要15分鐘?這是可重複的,這意味着我已經在每個環境中至少運行了三次,Management Studio的速度始終快了近100倍。Managment Studio和TableAdapter之間存儲過程的執行時間差異很大
我使用.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
和dbo.uspMovesReportByRouteStep
爲CommandText
。我從ASP.NET頁面調用表格適配器,但如果我也嘗試在本地「預覽數據」,則會在30秒內超時。
提供存儲過程是不現實的,因爲它存在超過100行的長度,並且依賴於相同數據庫和其他數據庫上的許多其他UDF和視圖。
所有其他存儲過程似乎使用任一方法在大約相同的時間運行。這怎麼可能?
有趣的是,我們這裏並沒有真正的DBA。不知何故,數據庫在沒有任何干預的情況下繼續進行卡車運輸,並且已有多年。但是我有權在服務器上做很多事情,所以也許我會開始嘲笑這個東西。感謝指針。 – recursive 2009-01-17 00:18:57