Je travaille avec un fournisseur avec l'arrangement qu'il fournit l'application principale et je peux créer mes propres extensions tant que je ne modifie pas l'application principale. Il est intégré à ColdFusion et se connecte à une base de données SQL Server 2005.
Certains des rapports que j'ai créés dépendent de vues utilisant des fonctions calculées à partir des tables de base, et les rapports deviennent très lents à mesure que les tables grossissent. Pour accélérer les rapports, je souhaite utiliser des vues indexées . Mais après avoir créé une vue indexée dans mon environnement de test, l'application principale ne pouvait plus s'insérer dans les tables principales (elle a renvoyé un message d'erreur qui ARITHABORT
doit être ON
lors de l'utilisation des vues indexées).
Il semble donc que pour utiliser les vues indexées, j'ai besoin d'avoir l'application de base SET ARITHABORT ON
chaque fois que vous insérez / mettez à jour les tables de base. J'ai exécuté ceci dans mon environnement de test:
ALTER DATABASE MyDatabase SET ARITHABORT ON;
et cela semble bien fonctionner. Mais mon fournisseur dit que l'application ayant des milliers de requêtes, il pourrait y avoir un risque que ce paramètre casse l'une de ces requêtes, et si nous avons un futur problème de base de données inattendu, ils insisteraient pour que je rétablisse le paramètre par défaut.
Existe-t-il des requêtes réelles qui seraient interrompues SET ARITHABORT ON
? Y a-t-il une situation où il serait préférable de le conserver OFF
?
TL; DR Pour que mes nouvelles vues indexées fonctionnent, je dois les définir ARITHABORT ON
pour l'ensemble de la base de données, mais mon fournisseur prévient que ce sera à mes risques et périls. Y a-t-il réellement un risque?