If a transaction log on a SQL Server database suffers unexpected from many VLFs, then check the following;
- is autogrowth on the specific database enabled?
- is the growth size exactly 4GB?

Then it is actually true, that you hit a bug!

As a sample; the transaction log of this database is grown to about 40GB and the autogrowth size was 4GB. As you can see, it then grows in somewhat around 100KB per growth leading into a VLF count of more than 170’000!
Only change the growth size to 1GB and growing was then as expected. But the work to do first was to reducing the VLFs Winking smile


To work around this problem don’t let the transaction log grow with exactly 4GB. Typically autogrowth in the transaction log is just to be sure, that if it is necessary for a transaction log to grow, that it can and does not interrupt the operation!
Usually it is recommended, that DBAs manually grow transaction logs to achieve best possible VLF counts!

Check this link: http://connect.microsoft.com/SQLServer/feedback/details/481594/log-growth-not-working-properly-with-specific-growth-sizes-vlfs-also-not-created-appropriately