आप प्रत्येक इंसर्ट को उसके अपने लेन-देन के अंदर निष्पादित करते हैं।
लेन-देन शुरू करना और करना बहुत है SQL Server
में महंगा ।
सब कुछ एक ही लेन-देन ब्लॉक में संलग्न करें:
declare @i int
set @i = 0
set nocount on
BEGIN TRANSACTION
while @i < 2000
begin
insert into testdb(testcolumn)
values (1)
set @i = @i + 1
end
COMMIT
नमूना डेटा उत्पन्न करने के लिए, आप एक पुनरावर्ती CTE
का उपयोग कर सकते हैं :
WITH q (num) AS
(
SELECT 1
UNION ALL
SELECT num + 1
FROM q
WHERE num < 2000
)
INSERT
INTO testdb(testcolumn)
SELECT 1
FROM q
OPTION (MAXRECURSION 0)
, जो तेज होगा।