Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Rounding without decimal
Message
 
General information
Forum:
ASP.NET
Category:
Coding, syntax and commands
Environment versions
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01502535
Message ID:
01502573
Views:
23
If you try

select ... into ...

this makes minimal logging and it should be faster than insert into approach. In general it's recommended to do inserts/updates/deletes in batches when you deal with huge volume of data.

>I don't know why do you think SQL Server can only insert a batch of 1000? What is the context of this statement as in general it's definitely not right?
>
>>>lnLoop = int(lncount/1000)
>>
>>This works. At first, I tried Math.Int() and thought it was not supported. Now, from your post, I remember that Int() can be used as is.
>>
>>This is part of a class that is used to insert in batch. I have a class InsertRow which is used to insert one record at a time into a table with all the data dictionary validations. But, sometimes, there could be a used to insert in batch thousands of records, where we do no need to validate against the data dictionary. In this case, I can call the InsertInRow class to insert thousdands of records in a flash.
>>
>>lnLoop was used to determine the number of loops as SQL Server can only insert in batch up to 1000 records at a time if I recall corrrectly. So, the part that negotiates with that is as follow:
>>
>>
>>            ' If we have no record
>>            If lnCount = 0 Then
>>                Return True
>>            End If
>>
>>            ' Get the number of loops
>>            lnLoop = Int(lnCount / 1000)
>>
>>            ' If it is less than zero
>>            If lnLoop = 0 Then
>>                lnLoop = 1
>>            End If
>>
>>            ' For each loop
>>            For lnCounter = 1 To lnLoop
>>
>>                ' Get the start position
>>                lnStart = (lnCounter * 1000) - 1000
>>
>>                ' Maximize to the number of records
>>                lnMax = Math.Min(lnStart + 1000, lnCount)
>>
>>                ' Scan all records
>>                For lnCounter2 = lnStart To lnMax - 1
>>                    loRow = oDataProvider.oDataSet.Tables("Temp").Rows(lnCounter2)
>>
If it's not broken, fix it until it is.


My Blog
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform