CREATE PROCEDURE NormalInsert(
@Context nvarchar(100)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @StartTime DATETIME
SET @StartTime = GETDATE()
DECLARE @LoopCount INT
SET @LoopCount = 10000
WHILE( @LoopCount > 0 )
BEGIN
BEGIN TRANSACTION
INSERT SendBox(Context) values (@Context)
IF( @@Error <> 0 or @@RowCount = 0)
BEGIN
ROLLBACK TRANSACTION
RAISERROR('Error when processing INSERT statement or Task Table.',15,1)
RETURN -100
END
COMMIT TRANSACTION
SET @LoopCount = @LoopCount - 1
END
PRINT 'Elapsed Time : ' + convert( varchar(128), GETDATE() - @StartTime, 114 )
RETURN
END
GO
Normal Insert 사용시
Elapsed Time : 00:00:02:653
Elapsed Time : 00:00:02:593
Elapsed Time : 00:00:02:560
Elapsed Time : 00:00:02:737
Elapsed Time : 00:00:02:593
CREATE PROCEDURE TryInsert(
@Context nvarchar(100)
)
AS
BEGIN
SET NOCOUNT ON
DECLARE @StartTime DATETIME
SET @StartTime = GETDATE()
DECLARE @LoopCount INT
SET @LoopCount = 10000
WHILE( @LoopCount > 0 )
BEGIN
BEGIN TRY
BEGIN TRANSACTION
INSERT SendBox(Context) values (@Context)
COMMIT TRANSACTION
END TRY
BEGIN CATCH
ROLLBACK TRANSACTION
BEGIN
RAISERROR('Error when processing INSERT statement or Task Table.',15,1)
RETURN -100
END
END CATCH
SET @LoopCount = @LoopCount - 1
END
PRINT 'Elapsed Time : ' + convert( varchar(128), GETDATE() - @StartTime, 114 )
RETURN
END
GO
Try Insert 사용시
Elapsed Time : 00:00:02:860
Elapsed Time : 00:00:02:810
Elapsed Time : 00:00:03:063
Elapsed Time : 00:00:02:640
Elapsed Time : 00:00:02:767
덧글을 달아 주세요