Estou analisando algumas métricas de desempenho e todas as recomendações incluem monitoramento Batch Requests/sec
. Mas, talvez uma pergunta boba, uma única solicitação em lote corresponde a exatamente uma instrução tsql? Digamos que ele contenha exatamente uma seleção ou uma atualização, etc. Assim, por exemplo, um procedimento armazenado com 3 seleções e 2 inserções aciona 5 solicitações em lote. Ou, como penso, uma solicitação em lote pode incluir, por exemplo, um procedimento armazenado completo, uma função, várias instruções de seleção/atualização/inserção, etc.
Tudo o que posso encontrar é semelhante a estas descrições:
- TechNet Número de lotes de comandos Transact-SQL recebidos por segundo. Essa estatística é afetada por todas as restrições (como E/S, número de usuários, tamanho do cache, complexidade das solicitações e assim por diante). Solicitações de lote altas significam uma boa taxa de transferência.
- Entendendo como o SQL Server executa uma consulta Solicitação de lote Este tipo de solicitação contém apenas texto T-SQL para que um lote seja executado. Esse tipo de solicitação não possui parâmetros, mas obviamente o próprio lote T-SQL pode conter declarações de variáveis locais. Este é o tipo de solicitação que o SqlClient envia se você invocar qualquer um dos SqlCommand.ExecuteReader(), ExecuteNonQuery(), ExecuteScalar(), ExecuteXmlReader() (ou seus respectivos equivalentes assíncronos) em um objeto SqlCommand com uma lista de parâmetros vazia. Se você monitorar com o SQL Profiler, verá uma classe de evento SQL:BatchStarting
De acordo com o comentário, não - não é uma única declaração. Um lote pode abranger várias instruções T-SQL individuais em um único lote.