Eu tive esse problema e descobri que eu tinha uma instrução LINQ que estava tentando excluir algumas linhas. Ele estava falhando a cada dia, então a quantidade de linhas continuava subindo e subindo. As exceções foram realmente tratadas e registradas em uma tabela que eu fiz, então eu a encontrei lá. Encontrei a tabela de problemas e foi 700k + de linhas super pesadas. Meu LINQ ficou assim:
var db = new DatabaseDataContext();
var updateQueueLogs = db.UpdateQueueLogs;
List<UpdateQueueLog> listToDelete;
using (new TransactionScope(
TransactionScopeOption.Required, new TransactionOptions { IsolationLevel = IsolationLevel.ReadUncommitted }))
{
listToDelete = (from updateQueueLog
in db.UpdateQueueLogs
where updateQueueLog.CreatedAt < DateTime.Now.AddDays(-7)
select updateQueueLog).ToList();
}
updateQueueLogs.DeleteAllOnSubmit(listToDelete);
db.SubmitChanges();
Então, estava puxando os objetos completos e obtendo exceções OutofMemory. Eu mudei este código para um proc armazenado:
delete from UpdateQueueLogs
where CreatedAt < DATEADD(day,-7,getdate())
Eu só queria postar isso, porque se você não está vendo as exceções, você pode querer verificar algumas das suas contagens de linha da tabela SQL e ver se pode haver algumas instruções LINQ que estão expirando.