I doubt that is the problem.
You said that after shrinking, the ldf was 8 G. If it grows by 10%, that would make it 8.8 G. Then 9.something, etc... it would have to grow many times before it got to 20 gigs.
Most DBA's that I know prefer to set the auto grow to a particular number instead of a percentage. For example, in your situation, you may want to set the autogrow to 2 gigs (for the log and the data file).
You see... when SQL Server grows a file, it can take some time to do that. You really don't want SQL Server to grow your file(s) during your busiest time, so it is better to monitor your database and grow the file yourself (manually) during a time when the db is less busy.
You should also make sure that "Instant File Initialization" is turned on. This only affects the mdf file, but it makes a dramatic improvement in the time it takes to grow the database. If you don't know whether this is turned on, I encourage you to download and install SQLCop. This is a free utility that I wrote. There is a link to it in my signature.
Ok... so that was a lot of background, but it's not solving your immediate problem. One potential cause could be a huger transaction that is trying to finish. You see, even in simple recovery mode, the transaction log is still used. Think of it this way.... Suppose I wanted to update data in a row:
1. Mark the transaction log that I will be updating data.
2. Put the original data in the transaction log.
3. actually update the data in the table.
4. mark the transaction log that the update was successful.
All of the steps are important for the stability of your database. You can literally pull the plug on the server in the middle of any process and SQL Server will be able to recover the DB to a good state. When SQL starts up, it checks for uncommitted transactions and processes those first, leaving your DB in a workable state.
Now, imagine a HUGE transaction like updating all the data in a very large table. This huge update will the transaction log and could (possibly) fill it up and cause the problem you are seeing.
I would encourage you to run this:
sp_who2
check the output of this command. Any spid below 50 is an internal SQL Server process. Check the spids above 50 for any unusual activity like extremely long running times and/or huge amounts of Disk IO.
You can see the query that was executed by the SPID by running this command.
[tt]DBCC INPUTBUFFER([!]The SPID Goes Here[/!])[/tt]
-George
Microsoft SQL Server MVP
My Blogs
SQLCop
twitter
"The great things about standards is that there are so many to choose from." - Fortune Cookie Wisdom