Application avec base SQL plus rapide si Management Studio open - SQL/NoSQL - Programmation
Marsh Posté le 28-10-2014 à 13:34:21
Tu parles bien de MS SQL 2012 ?
Le pb de lenteur de l'appli comparé au requêteur peut avoir plusieurs causes :
1) le sgbd se trouve t-il sur le même serveur que l'appli ? Si c'est pas le cas, ça peut venir d'une lenteur du lien réseau entre les 2 machines (genre, une connexion 100 Mbps au lieu du gigabit.
2) l'appli doit probablement faire appel à des notions de droits d'accès pour les utilisateurs. Ces droits que tu n'as sans doute pas en passant par le requêteur peuvent complexifier les requêtes SQL et les ralentir (genre, des droits d'accès rajoutant des IN et des OR dans les requêtes pour limiter les enregistrements retournés).
3) appli mal codée. Dans ce cas, voir si ça vient des requêtes faites par l'appli (SQL) ou du traitement (langage dans lequel l'appli est développée) des enregistrements retournés par les requêtes. Dans les 2 cas, ça implique d'avoir accès au code source pour faire les corrections si c'est ça. Sinon, faudra passer par le support.
Voilà déjà qq pistes
Marsh Posté le 28-10-2014 à 14:18:29
J'ai eu la réponse. En fait, sur ma base de données, j'avais l'option "Fermeture automatique" à "True".
Je l'ai mise à False et c'est OK.
Marsh Posté le 28-10-2014 à 14:31:10
Ah ok, c'est un truc similaire à la connexion persistante je pense.
Cela dit, ton pb pourrait laisser penser qu'avant chaque requête SQL, le dév a ouvert la connexion à la BD et après la requête, la referme, ce qui est totalement inutile. la connexion devrait être ouverte au lancement de l'appli et fermée à la fin.
Marsh Posté le 29-10-2014 à 09:23:55
ginola > ton problème m'intéresse...
Tu utilises un SERVEUR SQL Server 2012 ? Ou si tu utilises LocalDB ?
En effet, dans le cas d'un serveur, je suis perplexe. Si c'est un LocalDB, alors c'est normal : le moteur de SQL Server n'est démarré que lorsqu'il y a une connexion active. Donc vu que SSMS laisse une connexion ouverte tant qu'il tourne, normal que tu constates cette différence.
Par contre, ton application est codée en quoi ?
Car normalement, SQL Server fait du pooling de connexions. Et je suis étonné que LocalDB s'arrête dès que tu fermes une connexion, il devrait attendre un moment avant de s'arrêter, en raison de la gestion du pool...
C'est quoi ta chaîne de connexion ?
Marsh Posté le 28-10-2014 à 13:07:20
Bonjour à tous,
Voilà mon problème : j'ai une appli qui utilise comme moteur SQL 2012. Les temps de réponse sont très lents. Mai si j'ouvre une fenêtre de requête sur ma base dans Entreprise Manager, ô miracle, les temps de réponse sont très rapide.
Quelqu'un aurait une idée sur le pourquoi ?
D'avance merci.
Ginola