Here's a quick tip for you:
During some restore operations in SQL Server, the transaction log redo step might be taking an unusually long time. Depending somewhat on the version and edition of SQL Server you've installed, you may be able to increase performance by tinkering with the readahead performance for the redo operations. To do this, you should use the MAXTRANSFERSIZE
parameter of the RESTORE
statement. For example, if you set MAXTRANSFERSIZE = 1048576
, it'll use 1MB buffers.
If you change the MAXTRANSFERSIZE
, keep an eye on the PerfMon objects for Buffer Manager and Readahead I/O. You may also wish to keep an eye on LOGBUFFER
wait stats.
I'd love to hear your feedback. Have you tried this technique? Did it work as advertised? Did it require some changes to work on a specific version or edition?
Many thanks,
-Kev
–Follow me on Twitter!
Why not do everything you can to optimize your restores? http://sirsql.net/blog/2011/9/26/optimizing-database-restores.html
Is there any way to specify such a parameter to a sqllogship.exe – Restore command? (I'm running 2012.)
Mark, I don't think so (at least no such argument is documented). The only way you'll be able to manually specify this option is to write the backup/restore commands yourself.