SQL Server Management Studio (SSMS) 2012 lento para mostrar resultados somente em Grade


0

Geralmente, uso o Microsoft SQL Server Management Studio 2012 (11.0.3000.0) com os resultados da consulta sendo exibidos em uma grade. Há 3 ou 4 dias, os resultados da consulta eram bastante lentos, mas apenas de forma intermitente. Como exemplo, uma consulta simples como

SELECT GETDATE() 

levará 7 segundos (de acordo com o SSMS) para exibir a data / hora atual. Se eu executar a consulta com o rastreamento / criador de perfil ativado, posso ver que a consulta foi executada quase imediatamente, mesmo que o temporizador do SSMS continue a marcar e nenhum resultado seja exibido por algum tempo. O valor da data / hora resultante é o mesmo que o rastreamento / criador de perfil mostra para a coluna "StarTime". Normalmente, a consulta retorna em 1 segundo ou menos, mas se eu executar 5 ou 6 vezes, detectarei o problema e levará um tempo para concluir.

Quando isso acontece, meu laptop quad core aumenta para 25% da CPU (todo o núcleo é usado por todo o período de tempo) até que a grade seja estabelecida.

Estou me conectando a um servidor local (na minha LAN) que está com muito pouca carga e ninguém mais na minha empresa parece estar tendo problemas semelhantes. Instalei o SSMS 2014 para ver se isso ajudou (não ajudou). Pensando que era um problema com a elaboração do próprio DataGrid, instalei o .NET 4.6, que também não ajudou.

Quando executo os resultados no Text, eles aparecem em menos de um segundo, sempre.

Não parece ser um problema de rede:

Reply from 192.168.10.47: bytes=32 time<1ms TTL=128

Ping statistics for 192.168.10.47:
    Packets: Sent = 24, Received = 24, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 0ms, Maximum = 0ms, Average = 0ms

Alguém tem alguma sugestão sobre as coisas que eu deveria tentar?

Estou no Windows 7 (x64).

Respostas:


0

Consegui encontrar o problema executando a consulta enquanto monitorava o processo com o Process Monitor do SysInternalSuite . Ao exibir os resultados da consulta em uma grade, o SQL Server Management Studio cria um arquivo .tmp em C: \ Users \ nome de usuário \ AppData \ Local \ Temp \ chamado tmp ####. Tmp (onde os # são caracteres gerados aleatoriamente) .

Por qualquer motivo, meu diretório temporário foi preenchido com mais de 40.000 desses arquivos (todos vazios) e o Process Monitor estava mostrando que, quando minha consulta não exibia resultados, gerava milhares de erros "NAME COLLISION" tentando criar um novo nome para o arquivo temporário que ele estava tentando criar.

A exibição dos resultados da consulta no texto não cria um arquivo temporário que explica por que não estava ocorrendo um problema.

A exclusão de todos os arquivos .tmp desse diretório temporário corrigiu meu problema imediatamente.

Espero que isso ajude outra pessoa.


Eu descobri por que os arquivos temporários estavam sendo criados / deixados para trás. Isso ocorreu devido a um problema na versão mais recente (5.1.14) do dbForge SQLComplete. Em cada drop-down de preenchimento automático gerado, ele estava deixando dois arquivos tmp para trás. Desclassificado de volta para 5.0.28, que parece não ter esse problema e avise o fornecedor.
Nico M
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.