Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1264
Assunto : SQL Server
Titulo: Cuidado com as set options

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon




Cada conexão que fazemos no SQL Server possui um conjunto de configurações ativadas, as set options. Frequentemente a ferramenta que utilizamos para fazer a conexão, tal como o entity framework, define automaticamente um conjunto de set options para nós.

Ocorre que conexões com diferentes set options ativadas não podem compartilhar planos de execução. Então se diferentes conexões tiverem set options diferentes os planos de execução não serão compartilhados.

Considere isso em relação ao SSMS. Quando você está desenvolvendo, muitas vezes precisa capturar queries geradas pela aplicação, testa-las e até melhora-las utilizando o SSMS.

Porém, se o SSMS estiver utilizando um conjunto de set options diferentes da sua aplicação, isso pode até engana-lo, gerando diferentes planos de execução entre a aplicação e o SSMS.

As versões mais atuais do SSMS vem com uma opção chamada SET ARITHABORT ativada. Por outro lado, o entity framework não ativa essa opção, portanto uma aplicação utilizando entity framework fica com um conjunto diferente de set options do que o SSMS, dificultando a análise de algumas queries. Você pode ver uma query ruim na aplicação e ela executar bem no SSMS, por usar um plano diferente e você não notar.

Recomendação: Desative a opção SET ARITHABORT no SSMS. Vá em Query Execution->SQL Server-> Advanced e desative essa opção. Com isso EF e SSMS utilizarão as mesmas set options, facilitando a análise de queries.

Escrevi um poiuoc mais sobre isso em https://www.red-gate.com/simple-talk/blogs/a-real-parameterization-problem-with-a-plus/


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
Nenhum comentário foi realizado ainda. Seja o primeiro !
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br