Verifique se a propriedade "Auto-Close" do banco de dados está definida como FALSE.
Se isso estiver ativado, durante períodos de baixo tráfego, basicamente, o db fica offline. A primeira consulta tenta voltar a colocá-lo on-line, mas dependendo do tamanho, isso pode demorar um pouco.
EDIT: Se não for esse o caso, então algumas outras coisas para verificar:
- O seu servidor SQL tenta executar verificações de vírus intensivas de IO ou algo assim durante períodos de baixa atividade? Em caso afirmativo, certifique-se de excluir suas pastas SQL.
- Quaisquer outras partes do seu aplicativo que possam ser responsáveis aqui? Por exemplo, se você estiver usando o IIS com um aplicativo Web .Net, redefinir o pool de aplicativos forçaria as páginas a recompilarem na próxima vez em que forem chamadas.
Além disso, a única coisa em que consigo pensar (a falta de atualização para o SQL 2008 Enterprise Edition com o Resource Governer) é otimizar sua consulta para que ela tenha um desempenho ideal, mesmo quando as tabelas não estiverem armazenadas em cache.
Todas as recomendações de ajuste de desempenho normal naturalmente se aplicam, incluindo a indexação adequada (de preferência cobrindo os índices), etc.