2017-06-23 3 views
0

J'ai fait face à un problème de baisse de performance soudaine dans une application VB6 (ADO/ODBC vers SQL Server) que je maintiens qui semble être résolue en ajoutant SET ARITHABORT ON avant certaines requêtes SELECT.Devrais-je activer ARITHABORT ON dans toutes les requêtes SELECT dans une application

Les questions sont: Serait-il judicieux de créer une procédure générique pour activer ARITHABORT ON dans chaque requête de sélection de l'application? Quels sont les dangers à faire cela? Ce paramètre peut-il provoquer le retour des données SELECT (en particulier si elles contiennent des fonctions d'agrégation) sans que l'utilisateur/développeur ne s'en aperçoive? MISE À JOUR: Veuillez vous rappeler que cette application est exécutée sur les serveurs SQL Server 2014 avec la réplication de fusion activée.

Répondre

0

Ceci suggère que vous avez actuellement ARITHABORT OFF. "Vous devez toujours définir ARITHABORT sur ON dans vos sessions d'ouverture de session.La définition de ARITHABORT sur OFF peut avoir un impact négatif sur l'optimisation des requêtes et entraîner des problèmes de performances", ajoute-t-il. "Avertissement Le paramètre ARITHABORT par défaut de SQL Server Management Studio est activé Les applications client configurant ARITHABORT sur OFF peuvent recevoir différents plans de requête, ce qui rend difficile le dépannage des requêtes peu performantes. mais lent dans l'application.Lors du dépannage des requêtes avec Management Studio correspond toujours au paramètre client ARITHABORT. "

Donc, oui, je définirais ARITHABORT sur ON, mais dès le début. Si le reste de l'environnement est construit pour attendre ARITHABORT OFF, je serais très hésitant à changer un tel cadre de comportement fondamental. En ce qui concerne le problème de performance, vous ne devriez même pas vouloir le réparer avec le paramètre ARITHABORT. Je voudrais regarder dans les données pourquoi la baisse de performance se produit en premier lieu. Quelque chose a dû changer, si vous découvrez quoi, vous pouvez le corriger d'une manière moins fondamentale.

+0

Oui, la valeur par défaut dans les applications est OFF, ce qui n'a pas semblé avoir un impact sérieux sur l'application, jusqu'à récemment. Alors que le lien que vous avez fourni contient des informations importantes, il ne répond pas à ma question. Est-il possible qu'un tel changement provoque des résultats inattendus dans l'application (d'autant plus que la réplication est impliquée)? – FaultyOverflow

+0

Je doute que la réplication soit un facteur dans ce problème. Cela dépend de la façon dont l'application est construite. Quels contrôles de validité sont en place dans le logiciel, quelles sont les réponses attendues. Je m'attendrais à des erreurs d'application. Je ne m'attendrais pas tellement à des résultats erronés, mais c'est possible. – HoneyBadger