SQL Server Management Studio abrindo lentamente novas janelas

29

Após a atualização do SQL Server e do Management Studio de 2008 para 2012, o Management Studio 2012 fica muito lento quando novas janelas de consulta e caixas de diálogo são abertas.

Mesmo clicar com o botão direito nas tabelas é lento. Normalmente, há um atraso de pelo menos 5 segundos antes que eu possa começar a fazer qualquer coisa dentro de uma janela. Isso acontece sempre, mesmo se eu abrir a mesma janela duas vezes seguidas. Por que isso acontece e como posso corrigi-lo?

Outros aplicativos estabelecem conexões com o banco de dados muito rapidamente.

As coisas que tentei que não ajudaram:

  • Um sucesso no Google em que eu precisaria modificar meu hostsarquivo
  • Redefinindo o SSMS "configurações definidas pelo usuário"
  • Atualizando drivers de vídeo, desativando a aceleração de hardware, desabilitando o DirectX
  • Desativando o Serviço de Autenticação Biométrica (não o tenho instalado).

Meu computador deve ser mais do que rápido o suficiente e eu também tenho 16 GB de RAM. Meu hardware definitivamente não deve ser um problema. Parece que o SSMS está esperando por algo - posso operar outros programas sem problemas enquanto isso está acontecendo.

Não tenho a oportunidade de instalar a atualização CU1 do SQL Server 2012 porque parece haver algum risco de erros na instalação de hotfixes e não posso arriscar isso agora.

David S.
fonte
Eu não vejo esse comportamento. Se eu fizesse uma investigação mais aprofundada, poderia tentar (1) Usar o Process Monitor para ver o que o processo está fazendo e se isso dá alguma pista. (2) Usando o SQL Server Profiler para verificar se alguma das consultas enviadas pelo SSMS tem alta duração (por exemplo, bloqueio). a pilha de chamadas revelou qualquer coisa.
Martin Smith

Respostas:

11

Inicialização do SQL Server Management Studio

Quando o SQL Server Management Studio (SSMS) da Microsoft é iniciado, ele tenta conectar a CRL (Lista de Revogação de Certificados) da Microsoft:

http://crl.microsoft.com/pki/crl/products/MicrosoftRootAuthority.crl

Os componentes .NET subjacentes do SSMS estão tentando entrar em contato com a Lista de revogação de certificados e o SSMS não pode fazer isso. Isso diminui o procedimento geral de carregamento. (15 segundos por certificado, aparentemente)

Ok, então aqui está o que está acontecendo. O SSMS possui uma alta porcentagem de código gerenciado, todo esse código é assinado quando o enviamos. Na inicialização (se essa configuração estiver marcada), o .Net Runtime tenta entrar em contato com crl.microsoft.com para garantir que o certificado seja válido (alguns certificados falsos foram emitidos no nome da Microsoft há algum tempo, portanto, essa é uma preocupação muito válida) . Se não houver conexão à Internet ou houver um problema ao entrar em contato com o servidor da lista de revogação de certificados, isso atrasará a inicialização do SSMS.

Referência: FAQ, Por que o SSMS leva 45s para iniciar? (Blog do MSDN)

Um problema que pode causar esse problema é que, se o servidor não tiver acesso à Internet, a estrutura .NET não poderá acessar o site crl.microsoft.com para verificar se as assinaturas digitais usadas para assinar os binários dos aplicativos gerenciados é válido. Cada verificação de certificado tem um tempo limite de 15 segundos na implementação do tempo de execução .NET. Dependendo dos recursos instalados, isso pode resultar em um minuto de tempo de inicialização para o Management Studio.

Referência: Horário de Inicialização do SQL Server Management Studio (Blog do MSDN)

Soluções

Você pode contornar parte do problema, baixando o certificado diretamente inserindo o link no navegador e importando o certificado para o banco de dados de certificados

  • OU -

Você pode reconfigurar o firewall (da empresa) para permitir conexões com a CRL da Microsoft

  • OU -

Você pode reconfigurar seu antivírus / firewall pessoal para permitir conexões com a CRL da Microsoft

  • OU -

Você pode configurar o firewall (da empresa) para enviar um tempo limite mais rápido ao seu cliente para solicitações de acesso à CRL da Microsoft.

  • OU -

Você pode configurar o IE para não "Verificar a revogação de certificado do editor" nas configurações avançadas.

(Veja os blogs 1 e 2 acima mencionados para obter detalhes)

John aka hot2use
fonte
7

Tenho a mesma experiência que você quando me conecto ao Nome do servidor "./". Por azar, descobri que não tenho o problema de desempenho ao me conectar ao Nome do Servidor "(local)". Provavelmente, há um problema com a maneira como o SSMS 2012 resolve o servidor por meio de "./".

Editar: não acho que esteja relacionado ao SSMS, pois posso reproduzir a lentidão com ./ em uma conexão ADO.NET.

LorentzM
fonte
6

Pode ter acontecido que o SSMS importou configurações que não podem mais ser tratadas corretamente (como conexões com algum servidor ou talvez algumas configurações de suplemento).

Existe uma maneira brutal de "redefinir" as configurações definidas pelo usuário do SSMS.

Feche o SSMS, vá para a pasta:

C:\Users\YOURWINLOGINNAME\AppData\Roaming\Microsoft\SQL Server Management Studio\

Você encontrará a subpasta "11.0". Renomeie-o para "11.0_", para que você possa sempre renomeá-lo novamente. Agora inicie o SSMS - ele recriará configurações limpas e talvez seu problema seja resolvido. Caso contrário - exclua "11.0" recém-gerado e renomeie "11.0_" novamente para "11.0".

Isso também pode ser um comportamento de algum suplemento, que foi corrompido após a atualização. Os suplementos se registram como manipuladores de alguns comandos ou eventos e o sistema pode ficar instável se houver exceções / exceções.

Na verdade, o v2012 usa outro mecanismo para registrar suplementos, mas alguns deles se instalam em todas as instâncias. Para verificar, verifique esta chave do registro:

[HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\11.0_Config\AutomationOptions\LookInFolder]

Você encontrará a lista de pastas lá. Verifique todas essas pastas - elas devem estar vazias (significa que você não possui suplementos).

Andrei Rantsevich
fonte
4

Tente desativar o antivírus e verifique o desempenho do sql server 2012 management studio.

imran
fonte
4
Qual é a justificativa para essa sugestão?
Martin Smith
3

Eu não experimentei esse problema pessoalmente, no entanto, há um longo tópico ( aqui ) em que muitas pessoas o têm. O conselho geral parece estar relacionado ao trabalho com o driver de vídeo por

  1. Instalando um driver de vídeo atualizado -OR-
  2. Reduzindo ou desativando a excelência do hardware -OU-
  3. Desativando o suporte ao DirectX

A partir da discussão, havia também esta resposta ... "O procedimento de inicialização limpa do Windows 7 revelou que o serviço Serviço de autenticação biométrica (DigitalPersona DPHostw.exe) era o problema. Desativar o serviço corrigia o problema."

Eu estaria interessado em saber se alguma dessas abordagens também funciona no seu caso, pois o segmento que encontrei se refere a versões mais antigas do SSMS, ou seja, 2005, 2008, etc.

Lynn Langit
fonte
3

Eu acho que o problema é que abrir uma nova conexão com o servidor leva 5 segundos. Por que exatamente esse é o caso que não sei dizer e exigiria um rastreamento de fio para analisar e diagnosticar. Você deve investigar quais protocolos estão sendo tentados e qual protocolo será bem-sucedido. Pode ser que seu cliente tente primeiro os pipes nomeados (que depende do SMB) e depois volte ao TCP (embora o atraso usual nesse caso seja muito maior, em torno de 20 a 30 segundos).

Eu recomendaria que você verifique a ordem dos protocolos do cliente na Configuração de rede do cliente . Verifique o protocolo usado pelo cliente encontrando sua própria entrada sys.dm_exec_connections.

Remus Rusanu
fonte
3

Eu tenho o mesmo problema e verifica-se que a verificação do Trend Micro Office está causando o problema.

Eu tentei tudo descrito em vários outros tópicos semelhantes sobre este problema sem sucesso. Achei que tentaria desativar o software AV. Depois que a verificação do Trend Micro Office está desativada, o SSMS fica muito rápido.

Isso não aconteceu no Windows 7.

user1905428
fonte
3

Eu também estava com um atraso de 5 a 10 segundos ao clicar com o botão direito do mouse em uma tabela para abrir o menu de contexto. No entanto, minha situação pode ser um pouco diferente de algumas, porque eu uso apenas bancos de dados locais. Minha solução:

Depois de ler a resposta da imran sobre a desativação do antivírus, levei esse conceito um passo adiante, pois não quero desativar completamente o meu antivírus APENAS para superar esse problema.

Reduzi significativamente o atraso (agora é de 1 segundo no máximo) alterando os locais padrão do banco de dados e excluindo esse diretório do antivírus (no meu caso, estou usando o Microsoft System Center Endpoint Protection 2015).

Para alterar os locais padrão do banco de dados, consulte o artigo a seguir para obter informações detalhadas. http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/

davrob01
fonte
3

Eu tive o mesmo problema com o SSMS 2016. Usei procmon para identificar que a última coisa que ele fez antes de um atraso de vários segundos foi fazer uma conexão de rede com um endereço IP da Microsoft. Tentei desativar o Programa de experiência do cliente, definindo o HKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\130valor CustomerFeedbackda chave do registro de 1 a 0. Depois de reiniciar o SSMS, ele está funcionando rapidamente novamente. Presumivelmente, isso nem sempre leva a lentidão nas novas janelas de consulta, mas, para mim, ocorreu.

Não sei se é isso que estava acontecendo com o seu SSMS 2012, mas talvez valha a pena tentar. A chave do Registro provavelmente estará em 110vez de 130.

Rory
fonte
2

Sobre o SSMS 2016 e a alteração do registro. Meu caminho foi

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\Setup\UserFeedbackOptIn  

Eu mudei de 1 para 0 e o SSMS foi rápido novamente.

JohnH
fonte
2

Às vezes, esse problema pode ser resolvido simplesmente fechando um grande número de janelas de consulta em cache.

Minha instância do SSMS tinha cerca de 15 consultas no cache salvo (que era aberto toda vez que eu abria o SSMS) - fechei todas essas janelas e reiniciei o SSMS; o problema desapareceu imediatamente.

Coruscate5
fonte
2

Eu tenho o ssms v17.0, também tive o problema com menus de contexto lentos com o botão direito.

O nome do computador continha traços, renomeando o computador como algo simples, corrigindo-o.

Desinstalei o ssms, desinstalei o servidor sql e renomeei o computador para algo simples como 'MyBox' em vez de 'xja-13-asdfa3'. Em seguida, reinstalei o sql server, depois o ssms, e isso corrigiu TODOS os meus problemas de menu de contexto LENTO ao clicar com o botão direito do mouse nas tabelas. Imagino que em algum lugar problemas de DNS estavam ocorrendo e as esperas estavam relacionadas à espera de tempos limite de DNS.

Eu tinha um laptop com 16 GB de ram, unidades SSD, uma CPU de 3ghz diretamente da fábrica com o nome padrão de PC aleatório.

user124222
fonte
1

É rápido no meu computador.

O SSMS no SQL Server 2012 agora usa o shell do Visual Studio 2010, que consome mais recursos do que o shell usado pelo SSMS no SQL Server 2008. Sugiro atualizar seu computador ou usar o SSMS do SQL Server 2008 R2. Você deve conseguir executar a maioria das tarefas com a versão antiga.

Você também pode tentar instalar a atualização cumulativa mais recente, pois eles também atualizarão as ferramentas do cliente. A versão mais recente do SQL Server 2012 atualmente é CU1.

http://support.microsoft.com/kb/2679368/

Rob Boek
fonte
1

alterar o nome do computador para não ter '-' é o que o corrigiu.

John Campbell
fonte
0

Para mim, foi o firewall do BitDefender que tornou meu SSM ultra lento Aparentemente, algum tipo de firewall bloqueando o acesso à lista do banco de dados

eka808
fonte
-1

Deve-se verificar o status da propriedade do banco de dados " Fechar automaticamente " no grupo " Automaticamente ".

Se verdadeiro, após cada consulta, a conexão será fechada e reaberta a cada nova consulta. Isso certamente atrasa seu trabalho em ssms. O padrão é falso.

Loul G.
fonte
-2

Será que você não tem RAM suficiente no seu computador?

A RAM recomendada para o SQL 2012 é 4 go. Eram 2 para o SQL 2008. http://msdn.microsoft.com/en-us/library/ms143506.aspx

Desde que você atualizou do SQL 2008 para 2012, talvez precise de mais RAM?

Danielle Paquette-Harvey
fonte
-2

Quando inicio o SSMS usando privilégios de administrador (clique com o botão direito e executo como administrador), ele funciona bem; caso contrário, a nova janela de consulta está demorando mais

Waqas Zubairy
fonte
-3

A causa disso é quase sempre uma unidade de rede ausente - por exemplo, se você possui um mapeamento de unidade para o laptop, mas o laptop está desligado.

Infelizmente, a resolução é ligar o laptop (para que as unidades sejam reconectadas) ou desconectar as unidades no Windows Explorer (mas você precisará reconectá-las posteriormente).

Consulte aqui para obter mais informações: http://social.msdn.microsoft.com/Forums/en-US/sqltools/thread/64c13a84-3e62-4b0c-a1ce-65fcc78d6787

BeachBum
fonte
1
Esse problema é específico do SSMS 2012 - duvido que um segmento msdn de fevereiro de 2010 seja relevante.
JNK