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
덧글을 달아 주세요