现在我和一位同事争论非重要的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