Download presentation
Presentation is loading. Please wait.
Published byAlana Murley Modified over 9 years ago
1
Optimizing Procedural Code Understanding Logging, Recovery, Locking and Performance Presentation Addition Understanding/Optimizing VLFs Kimberly L. Tripp President/Founder
2
Enterprise Database Administration and Deployment SIG Pre-conference Workshop Tuesday, September 28 8:30 am – 4:30 pm How the Transaction Log Works On commit, activity is written to the log – active and likely sequential Activity moves through log sequentially, fills and then goes to a second file or autogrows Excessive autogrowth causes: Slight pause on autogrow Windows call to extend a file (may cause file fragmentation) Adds “VLFs” to the file on each autogrowth Virtual Log File 4 Virtual Log File 5 Virtual Log File 1 Virtual Log File 2 Inactive Virtual Log File Min LSN (first open tran) Active Virtual Log File Inactive/Unused Log File Start Logical Log End Virtual Log File 3 Inactive Virtual Log File
3
Enterprise Database Administration and Deployment SIG Pre-conference Workshop Tuesday, September 28 8:30 am – 4:30 pm Transaction Log Optimization Pre-allocate the log to the appropriate size Minimize autogrowths Log might NOT show 0 Percent Log Used after backup for example - the % Log Used will be ~6% Disk Bound Systems might experience some performance degradation at log backup Consider RAID 1+0 instead of RAID 1, RAID 5 generally is not recommended Optimize existing file – minimize VLFs
4
Enterprise Database Administration and Deployment SIG Pre-conference Workshop Tuesday, September 28 8:30 am – 4:30 pm Minimize VLFs Excessive VLFs add overhead to log related activities: Excessive VLFs add overhead to log related activities: Transaction logging Log Backups – may cause problems in clearing the log as well… Logreader (replication) After Triggers (inserted/deleted), etc.) Should have less than 50 Should have less than 50 BPA (Best Practices Analyzer only generates warning if over 200) BPA (Best Practices Analyzer only generates warning if over 200)
5
Enterprise Database Administration and Deployment SIG Pre-conference Workshop Tuesday, September 28 8:30 am – 4:30 pm Minimize VLFs Execute DBCC LOGINFO Execute DBCC LOGINFO Number of rows = Number of VLFs If excessive (> 50) then: If excessive (> 50) then: Free up log space by first clearing space from the transaction log (using BACKUP LOG) If your Database Recovery Model is FULL or Bulk_Logged then perform a regular transaction log backup – this should remove the inactive portion of the log If your Database Recovery Model is Simple then clear the log
6
Enterprise Database Administration and Deployment SIG Pre-conference Workshop Tuesday, September 28 8:30 am – 4:30 pm Minimize VLFs Shrink the transaction log file Shrink the transaction log file DBCC SHRINKFILE(logfilename, TRUNCATEONLY) Alter the Database and modify log file size to a more appropriate size (not requiring all of the autogrowth) in ONE increment Alter the Database and modify log file size to a more appropriate size (not requiring all of the autogrowth) in ONE increment ALTER DATABASE dbname MODIFY FILE ( NAME = name, SIZE = new_size ) MODIFY FILE ( NAME = name, SIZE = new_size )
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.