web-dev-qa-db-fra.com

SSMS 2012/2014/2016 L'explorateur d'objets est suspendu lors de l'expansion de la liste de bases de données sur un serveur avec de nombreux DBS

Lors de l'accès à SQL Server avec les versions SSMS (2012/2014 et 2016), l'ouverture de la liste des bases de données de l'explorateur d'objet est vraiment lente. Si je l'essaie d'utiliser SSMS 2008 R2 sur la même instance, le résultat est => Affichage instantané.

Remarque: Le compte est Sysadmin, toutes les bases de données ont une autoclose désactivée et je ne connecte pas à un serveur distant. C'est sur ma machine locale!

J'ai remarqué qu'il y avait une petite différence comparant les requêtes générées à partir de SSMS 2008 et 2012/2014/2016 lors de l'ouverture de la liste des bases de données.

Tous utilisent has_dbaccess fonction, sauf SSMS 2008.

Par exemple:

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

Il y a une énorme différence de performance si je supprime la fonction. Je suppose qu'ils devraient ajouter une condition dans la suppression de la requête où dans le cas où il s'agit d'un compte Sysadmin, il suffit de ne pas vérifier les autorisations dans chaque base de données. Celà a-t-il un sens?

2
Danilo Braga

Ce problème est finalement fixé dans le nouveau SSMS 17.9.

Vous pouvez l'obtenir ici .

1
Danilo Braga