Como obter o plano de execução usando o LINQ to SQL / ADO.NET

9

É possível obter o plano de execução de um LINQ para SQL ou o ADO.NET Query programaticamente para exibir informações de depuração? Se sim, como?

    
por Chad Moran 12.05.2011 в 16:03
fonte

1 resposta

3

Claro, existem duas coisas que você precisará.

Uma implementação personalizada de DbConnection , DbCommand e DbDataReader . Você pode usar isso para interceptar todo o SQL enviado para o banco de dados. Você basicamente configurá-lo para que você tenha uma camada que registra todo o SQL que é executado. (planejamos abrir algo nessa área nos próximos meses, então fique ligado)

Uma maneira de exibir um sentido dos dados, que por acaso é open source aqui: link (veja a opção de plano de execução de inclusão)

Outra abordagem é fazer o diagnóstico após o fato observando o cache de proc. sys.dm_exec_query_stats contém identificadores de plano em cache que você pode expandir.

    
por Sam Saffron 14.05.2011 / 16:03
fonte