I have a batch file, which is used to copy data from a database. The database has over 75 million records.
So I have made 8 output files.. each of 10 million retrieval range.
Tha Batch file is as:
echo off REM -t"^^" -r"~`~" "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b1.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F1 -L10000000 -t"^^" -r"~`~" REM "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b2.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F10000001 -L20000000 -t"^^" -r"~`~" rem "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b3.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F20000001 -L30000000 -t"^^" -r"~`~" rem "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b4.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F30000001 -L40000000 -t"^^" -r"~`~" rem "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b5.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F40000001 -L50000000 -t"^^" -r"~`~" rem "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b6.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F50000001 -L60000000 -t"^^" -r"~`~" rem "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b7.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F60000001 -L70000000 -t"^^" -r"~`~" rem "C:\Program Files\Microsoft SQL Server\100\Tools\Binn\bcp" "DatabaseD1.dbo.TOOLS_AUDIT" out audit_b8.dat -S"LDNPCM05927V05B\DSDCU_MAIN2_UAT" -UUserID -PPassword-c -F70000001 -L80000000 -t"^^" -r"~`~" pause
The method that I am following is: I am commenting the last 7 statements using rem, and running only the first line..and then commenting all lines except the second line and running the batch file..and so on.. until the last line..
For the first line, it took me 45 minutes to copy records. For the second line, it took me 1 hour 20 minutes.. For the third line.. 2 hours 5 minutes.. and so on... with time increasing each time.
Could someone suggest any ways to optimise such batch files?
Best Regards Asutosh