SQL ServerとManagement Studioの両方を2008から2012にアップグレードした後、新しいクエリウィンドウとダイアログボックスを開くとManagement Studio 2012が非常に遅くなります。
テーブルを右クリックしても遅いです。通常、ウィンドウ内で何かを開始する前に、少なくとも5秒の遅延があります。同じウィンドウを2回続けて開いた場合でも、これは毎回発生します。なぜこれが発生し、どうすれば修正できますか?
他のアプリケーションは、データベースへの接続を非常に高速に確立します。
私が試したことは役に立たなかった:
hosts
ファイルを変更する必要があるGoogleへのヒット私のコンピュータは十分に高速である必要があり、16GBのRAMも備えています。私のハードウェアは問題になりません。 SSMSが何かを待っているようです-これが起こっている間、私は他のプログラムをスムーズに操作できます。
SQL Server 2012 CU1更新プログラムをインストールする機会がありません。これは、修正プログラムのインストール中にエラーが発生する可能性があり、現時点ではそのリスクを冒すことができないためです。
MicrosoftのSQL Server Management Studio(SSMS)が起動すると、Microsoftの証明書失効リスト(CRL)に接続しようとします。
http://crl.Microsoft.com/pki/crl/products/MicrosoftRootAuthority.crl
SSMSの基礎となる.NETコンポーネントが証明書失効リストにアクセスしようとしていますが、SSMSはそれを行うことができません。これにより、全体の読み込み手順が遅くなります。 (明らかに証明書ごとに15秒)
わかりましたので、ここで何が起こっています。 SSMSには高い割合のマネージコードがあり、このコードはすべて、出荷時に署名されています。起動時に(この設定がチェックされている場合)、. Netランタイムはcrl.Microsoft.comに連絡して証明書が有効であることを確認します(しばらくの間、Microsoftの名前で偽の証明書が発行されていたため、これは非常に有効な問題です) 。インターネット接続がない場合、または証明書失効リストサーバーへの接続に問題がある場合は、SSMSの起動が遅れます。
参照: FAQ、SSMSの起動に45秒かかるのはなぜですか?(MSDNブログ)
この問題を引き起こす可能性のある1つの問題は、サーバーがインターネットにアクセスできない場合、.NETフレームワークがcrl.Microsoft.com Webサイトにアクセスして、管理対象アプリケーションのバイナリに署名するために使用されたデジタル署名を確認できないことです。有効です。 .NETランタイム実装では、各証明書チェックのタイムアウトは15秒です。インストールされている機能によっては、Management Studioの起動時間が最大で1分間になる場合があります。
リファレンス: SQL Server Management Studio起動時間(MSDNブログ)
証明書を直接ダウンロードしてブラウザにリンクを入力し、証明書を証明書データベースにインポートすることで、問題の一部を回避できます。
(会社の)ファイアウォールを再構成して、MicrosoftのCRLへの接続を許可できます。
個人用ウイルス対策/ファイアウォールを再構成して、Microsoft CRLへの接続を許可できます。
(会社の)ファイアウォールを設定して、MicrosoftのCRLにアクセスするリクエストに対して、クライアントにより速くタイムアウトを送信できます。
IEを構成して、詳細設定で「発行元の証明書の取り消しを確認する」を行わないようにすることができます。
サーバー名 "./"に接続すると、同じ経験があります。ばかげて、サーバー名 "(local)"に接続してもパフォーマンスの問題が発生しないことがわかりました。 SSMS 2012が「./」を介してサーバーを解決する方法に問題がある可能性があります。
編集:ADO.NET接続で./を使用して速度低下を再現できるため、SSMSに関連しているとは思いません。
SSMSにインポートされた設定がインポートされて、正しく処理できなくなった可能性があります(一部のサーバーへの接続または一部のアドイン設定など)。
SSMSのユーザー定義設定を「リセット」するための残忍な方法があります。
SSMSを閉じて、フォルダーに移動します。
C:\Users\YOURWINLOGINNAME\AppData\Roaming\Microsoft\SQL Server Management Studio\
サブフォルダ「11.0」が見つかります。名前を「11.0_」に変更すると、いつでも元の名前に戻すことができます。 SSMSを開始します。クリーンな設定が再作成され、問題が解決する可能性があります。そうでない場合-新しく生成された「11.0」を削除し、「11.0_」の名前を「11.0」に戻します。
これは、アップグレード後に破損した一部のアドインの動作である可能性もあります。アドインはいくつかのコマンドまたはイベントのハンドラーとして自分自身を登録し、例外がないかスローされている場合、システムが不安定になる可能性があります。
実際、v2012はアドインの登録に別のメカニズムを使用していますが、一部のアドインはすべてのインスタンスに自分自身をインストールします。確認するには、次のレジストリキーを調べます。
[HKEY_CURRENT_USER\Software\Microsoft\SQL Server Management Studio\11.0_Config\AutomationOptions\LookInFolder]
そこにフォルダリストがあります。これらのすべてのフォルダを確認します-空である必要があります(アドインがないことを意味します)。
ウイルス対策を無効にしてから、SQL Server 2012 Management Studioのパフォーマンスを確認してください。
SSMS 2016でも同じ問題が発生しました。数秒の遅延が発生する前に procmon を使用して、Microsoft IPアドレスへのネットワーク接続が確立されたことを確認しました。次に、レジストリキーHKEY_CURRENT_USER\SOFTWARE\Microsoft\Microsoft SQL Server\130
値CustomerFeedback
を1から0に設定して、カスタマーエクスペリエンスプログラムをオフにしてみました。SSMSを再起動した後、再び高速に動作します。おそらくそれが常に新しいクエリウィンドウの速度を低下させるとは限りませんが、私にとってはそうでした。
それがあなたのSSMS 2012で起こっていたかどうかはわかりませんが、おそらく試してみる価値があります。レジストリキーは、おそらく110
ではなく130
になります。
SSMS 2016とレジストリの変更について。私の道は
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\130\Tools\Setup\UserFeedbackOptIn
私はそれを1から0に変更し、SSMSは再び高速でした。
同じ問題があり、Trend Micro Officeスキャンが問題の原因であることがわかりました。
私はこの問題について他のいくつかの同様のスレッドで説明されているすべてを無駄に試しました。 AVソフトウェアを無効にしてみようと思いました。TrendMicro Officeのスキャンがオフになると、SSMSは高速で明るくなります。
これはWindows 7では発生しませんでした。
テーブルを右クリックしてコンテキストメニューをプルアップすると、5〜10秒の遅延が発生しました。ローカルデータベースのみを使用しているため、状況は多少異なる場合があります。私の解決策:
アンチウイルスの無効化に関するimranからの回答を読んだ後、この問題を克服するためにアンチウイルスを完全に無効にしたくないので、その概念をさらに一歩進めました。
デフォルトのデータベースの場所を変更し、そのディレクトリをウイルス対策から除外することで、遅延を大幅に減らしました(現在は最大1秒です)(私の場合、Microsoft System Center Endpoint Protection 2015を使用しています)。
デフォルトのデータベースの場所を変更するには、詳細について次の記事を参照してください。 http://thomaslarock.com/2015/02/changing-default-database-file-locations-in-sql-server/
私は個人的にこの問題を経験していませんが、多くの人が抱えている長いスレッド( here )があります。一般的なアドバイスは、次のいずれかの方法でビデオドライバを操作することに関連しているようです
スレッドからもこの回答がありました...「Windows 7のクリーンブート手順により、生体認証サービス(DigitalPersona DPHostw.exe)サービスが問題であることが明らかになりました。サービスを無効にすると問題が解決しました。」
私が見つけたスレッドは古いバージョンのSSMS、つまり2005、2008などに関連しているので、これらのアプローチのいずれかがあなたのケースでも機能するかどうか知りたいです...
問題は、サーバーへの新しい接続を開くのに5秒かかることだと思います。なぜこれが正確に言えないのか、分析と診断にはワイヤートレースが必要なのはなぜですか。どのプロトコルが試行され、どのプロトコルが最終的に成功するかを調査する必要があります。クライアントが最初に名前付きパイプを試行し(SMBに依存)、次にTCPにフォールバックします(このような場合の通常の遅延ははるかに長く、約20-30秒です)。 。
クライアントネットワーク構成 でクライアントプロトコルの順序を確認することをお勧めします。 sys.dm_exec_connections
。
私はssms v17.0を使用していますが、右クリックのコンテキストメニューが遅いという問題もありました。
コンピュータの名前にはダッシュが含まれており、コンピュータの名前を単純なものに変更して修正しました。
私はssmsをアンインストールし、SQLサーバーをアンインストールし、コンピューターの名前を「xja-13-asdfa3」ではなく「MyBox」のような単純な名前に変更しました。次に、SQLサーバーを再インストールし、次にssmsを再インストールしました。これにより、テーブルを右クリックしたときのSLOWコンテキストメニューの問題がすべて修正されました。 DNSの問題が発生していて、待機がDNSタイムアウトの待機に関連していたと思います。
私は、16ギガのRAM、SSDドライブ、工場出荷時のデフォルトのランダムなPC名の3ghz cpuを搭載したラップトップを持っていました。
この問題は、キャッシュされた多数のクエリウィンドウを閉じるだけで解決できる場合があります。
SSMSのインスタンスには、保存されたキャッシュ(SSMSを開くたびに開く)に約15のクエリがありました-これらのウィンドウをすべて閉じてSSMSを再起動すると、問題はすぐに消えました。
コンピュータ名を変更して「-」を付けないようにすると、修正されました。
短いNetBIOS名を使用しないことが重要です。
その場合、管理スタジオは何らかのレガシー接続を使用します。すべてがうっとうしく遅くなります。 SQLサーバーが実行されているマシンのIPまたはフルネームを使用するだけです。
マシンのNetBIOS名が何であるかを知りたい場合は、クエリを実行します。
select @@Servername
これは短い、15文字のマシンのレガシー名を返すと思います。それは使わないでください。
それは私のコンピュータで速いです。
SQL Server 2012のSSMSはVisual Studio 2010 Shellを使用するようになりました。これは、SQL Server 2008のSSMSで使用されるシェルよりもリソースを集中的に使用します。コンピューターをアップグレードするか、SQL Server 2008 R2からSSMSを使用することをお勧めします。古いバージョンでほとんどのタスクを実行できるはずです。
クライアントツールも更新されるため、最新の累積的な更新プログラムをインストールすることもできます。 SQL Server 2012の最新バージョンは現在CU1です。
私にとって、SSMを非常に遅くしたのはBitDefenderファイアウォールでした