EF 4.1中內部經常提交的 exec sp_reset_connection 的用途原來是為了重用池中的連接
sp_reset_connection 的作用
當您使用連接池連接到 SQL Server 時,SQL Server 將調用 sp_reset_connection 存儲過程來重用之前池中的連接。
(在.NET中是由.Net SqlClient Data Provider調用)
使用 sp_reset_connection 存儲過程可確保連接選項被重置,
使 客戶端應用程序 重用 在以前的語句中所創建的 已沒有持續 的 連接。
然而,在 Microsoft SQL Server 2000 中,
sp_reset_connection 存儲過程可能 無法重置 設置正確的行數(@@ROWCOUNT)。
如果執行刪除或更新的語句執行后 sp_reset_connection 存儲過程調用,SQL Server 尊重舊行值(換句話說,舊的行數設置仍然存在)。
在這種情況下,DELETE或UPDATE語句只更新或刪除以前的連接設置中指定的行數。
SELECT 語句中,不會發生此問題。
如果您運行選擇后您調用 sp_reset_connection 存儲過程、SQL Server 忽略中以前的連接設置的 @@ROWCOUNT 和 SELECT 語句返回預期的行數。
Fix: SQL Server 2000的情況下請更新相關SP補丁包即可.
英文原版:http://support.microsoft.com/kb/310617/
--------------
在這里我知道了這個存儲過程是為了重用池中的連接所用的.so,
EF 4.1中內部經常提交的 exec sp_reset_connection 的用途原來是為了重用池中的連接



浙公網安備 33010602011771號