SSMSバージョン(2012/2014および2016)でSQL Serverにアクセスすると、オブジェクトエクスプローラーからデータベースリストを開くのが非常に遅くなります。同じインスタンスでSSMS 2008 R2を使用して試した場合、結果は=>インスタント表示になります。
注:アカウントはsysadminであり、すべてのデータベースで自動クローズが無効になっており、リモートサーバーに接続していません。それは私のローカルマシン上にあります!
データベースリストを開くときに、SSMS 2008と2012/2014/2016から生成されたクエリを比較すると、わずかな違いがあることに気づきました。
SSMS 2008を除き、それらすべてがhas_dbaccess関数を使用しています。
例えば:
SELECT
dtb.name AS [Name],
dtb.database_id AS [ID],
CAST(has_dbaccess(dtb.name) AS bit) AS [IsAccessible]
FROM
master.sys.databases AS dtb
ORDER BY
[Name] ASC
関数を削除すると、パフォーマンスに大きな違いがあります。クエリの先頭に条件を追加する必要があると思います。sysadminアカウントの場合は、すべてのデータベースのアクセス許可を確認しないでください。それは意味がありますか?
この問題は、新しいSSMS 17.9でようやく修正されました。
あなたはそれを得ることができます ここ 。