Cualquier transacción abierta activa fijará el registro, evitando el truncamiento y eventualmente causando crecimiento. Si comienza una transacción, escriba en el registro y luego espere para siempre con la esperanza de que finalmente le despierte un mensaje, simplemente fijó el registro y lo hizo crecer.
Últimamente comencé a recomendar a las personas que evitaran el WAITFOR en el procedimiento activado, junto con el bucle. Solo emite un RECIEVe y listo, deja que el mecanismo de activación se repita por ti (lo hace) y no ESPERES, simplemente RECIBE.
El sabor WAITFOR de RECEIVE crea un punto de guardado internamente. Esto genera un registro (al menos 3 registros) y, de hecho, fija el registro en su lugar mientras espera. Tener un tiempo de espera largo de WAITFOR (o peor, uno infinito) sería una muy mala práctica.
WAITFOR (...) TIMEOUT 3600000
Resolvería el problema? Por ejemplo, liberar cada hora.