SNIReadSync s'exécutant entre 120 et 500 ms pour une requête simple. Qu'est-ce que je cherche?

StackOverflow https://stackoverflow.com/questions/1610874

  •  05-07-2019
  •  | 
  •  

Question

J'exécute une requête simple sur SQL Server 2005:

protected static void InitConnection(IDbCommand cmd) {
        cmd.CommandText = "set transaction isolation level read uncommitted ";
        cmd.ExecuteNonQuery();            
    }

Chaque fois que je profile avec dotTrace 3.1, il déclare que la méthode SNIReadSync prend entre 100 et 500 ms.

Quel genre de choses dois-je rechercher pour pouvoir descendre cette fois?

Merci!

Était-ce utile?

La solution

Je n'ai pas testé, mais je me demandais si vous aviez le même problème si vous utilisiez un TransactionScope avec les options de IsolationLevel.ReadUncommitted. Vous devrez encapsuler votre ensemble complet d'appels, ce qui devrait éliminer la nécessité de cette déclaration. Je me rends compte que cette déclaration n’est pas votre préoccupation fondamentale, mais en général.

Vous pouvez également créer une classe DBConnectionScope (ou exploiter la classe d'un fournisseur approuvé) et réduire le nombre total de connexions ouvertes.

Autres conseils

Assurez-vous que le regroupement de connexions est activé ou vous recevrez une pénalité significative chaque fois qu'une connexion est ouverte. Dans votre chaîne de connexion, définissez Pooling = True ou supprimez toute référence au pooling. Je crois que la valeur par défaut est activée.

Cela a résolu le problème pour moi. J'espère que cela aidera pour vous et pour les autres.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top