Usando o Profiler, examine as consultas em execução na instância do SQL.
Se o aplicativo não estiver bem codificado, você pode estar em um cenário de "cortes de até 1000 cortes", em que há centenas ou milhares de consultas pequenas, possivelmente insignificantes, retornando linhas únicas em vez de um conjunto ou uma% resultadoJOIN
ed. Toda vez que o aplicativo deseja dados para um desses conjuntos de consultas, separar os níveis introduz uma enorme quantidade de latência extra em uma conexão de rede. Isso é muito contra-intuitivo se você nunca viu essa situação antes.
A execução do Profiler em um servidor com volume de consulta relativamente alto pode ser difícil, mas se for esse volume alto, você poderá ativá-lo por algumas vezes, de 1 a 2 minutos por vez, e obter uma boa amostra. Apenas faça o que fizer, não execute o Profiler em uma conexão de rede. Execute o Profiler na caixa do SQL Server via RDP ou configure o rastreamento para executar na própria instância (preferencial).
Suponho que você poderia lançar hardware nisso para reduzir a latência da rede. IMO, que realmente não é escalável, mas se você está em apuros com um aplicativo enorme que precisa ser consertado, é uma opção, pelo menos temporariamente.