Meu DBA sênior me disse que a execução da Consulta SQL por padrão não bloqueia a tabela.
Eu estava tendo alguns problemas com o relatório do SQL Server Reporting Services (SSRS), que parece estar tendo alguns problemas com o bloqueio e com alguns erros.
Eu pesquisei no Google, mas não consegui encontrar nada.
Os relatórios do SSRS bloqueiam as tabelas que estão sendo consultadas?
Existe alguma documentação do MSDN que documenta esse comportamento especificamente?
sql-server-2008
locking
Melaos
fonte
fonte
SET TRANSACTION ISOLATION LEVEL
por exemplo,READ UNCOMMITTED
se você não se importa em arriscar algumas leituras sujas.Respostas:
Resposta curta: Não
Mais longo...
O SQL Server não sabe que é o SSRS enviando uma consulta. Portanto, a consulta do SSRS será executada como qualquer outra consulta.
É mais provável que o otimizador de consulta decida usar um bloqueio de tabela para a consulta SSRS. claro, poderia ser um problema diferente, mas essa é uma pergunta diferente
fonte
Isso é verdade. No entanto, isso não significa que uma consulta não possa bloquear uma tabela.
O SSRS obtém os dados usados para renderizar o relatório executando uma consulta ou procedimento armazenado no banco de dados.
Essa consulta é definida pelo desenvolvedor e pode acabar bloqueando uma tabela (ou tabelas), dependendo do nível de isolamento e quantas linhas estão envolvidas. (De fato, pode haver casos em que você queira fazer isso de propósito .) A conclusão é que cabe ao desenvolvedor como o bloqueio funciona para a consulta. O SSRS não pode resolver esse problema para você. É por isso que não há documentação.
Considere (por exemplo):
READ UNCOMMITTED
se leituras sujas estão bemfonte
Como você sabe que existe algum bloqueio quando o relatório está sendo executado? Eu sugiro que você verifique a consulta / processo armazenado que é a fonte do relatório e verifique se está funcionando bem por si só.
Se você tiver certeza de que a consulta de origem está funcionando bem, tente identificar o problema usando o SQL Server Profiler. O link abaixo pode ajudar:
/programming/9107383/sql-server-profiler-capture-calls-to-your-databases-stored-procs-during-ssrs
fonte