現在我和一位同事爭論非重要的BEGIN TRAN .... COMMIT TRAN塊的影響。 我已經寫了大約140個存儲過程用於簡單的插入 - 更新 - 刪除操作,因爲我們可能以後需要在它們中做一些額外的操作,所以我已經包含了可能必需的BEGIN TRAN和COMMIT TRAN塊:事務塊是否會降低SQL Server的性能?
CREATE PROCEDURE [Users].[Login_Insert]
@Username nvarchar (50) OUTPUT,
@Password char (40),
@FullName nvarchar (150),
@LoginTypeId int
AS
SET NOCOUNT ON;
BEGIN TRY
BEGIN TRAN
INSERT [Users].[Login]
(
[Username],
[Password],
[FullName],
[LoginTypeId]
)
VALUES
(
@Username,
@Password,
@FullName,
@LoginTypeId
)
COMMIT TRAN
RETURN 1
END TRY
BEGIN CATCH
ROLLBACK TRAN
RETURN -1
END CATCH
GO
現在很多這些交易可能永遠不需要。這些無關塊是否會以顯着的方式影響性能? 在此先感謝。
我試着測量一次,不能。沒有可衡量的影響。 – 2011-06-13 19:02:46
希望我的同事能夠看到這個結論。非常感謝朋友 – M2X 2011-06-13 19:02:58
[答案在這裏說,它是可衡量的](http://stackoverflow.com/questions/3201982/having-transaction-in-all-queries/3273661#3273661) – 2011-06-14 05:59:31