I'm working with a vendor with the arrangement that they provide the core application, and I can build my own extensions as long as I don't modify the core application. It's built in ColdFusion connecting to a SQL Server 2005 database.
Some of the reports I've built depend on views using functions computed from the core tables, and the reports are getting very slow as the tables get larger. To speed up the reports, I want to use indexed views. But after creating an indexed view in my test environment, the core application could no longer insert into the core tables (it returned an error message that ARITHABORT
is required to be ON
when using indexed views).
So it seems that in order to use indexed views, I need to have the core application SET ARITHABORT ON
whenever inserting/updating the core tables. I ran this in my test environment:
ALTER DATABASE MyDatabase SET ARITHABORT ON;
and it seems to work fine. But my vendor says since the application has thousands of queries, there could be a risk that this setting could break one of these queries, and if we have some future unexpected database issue they would insist I restore the default setting.
Are there actual queries that would be broken by SET ARITHABORT ON
? Is there any situation where it would be better to keep it OFF
?
TL;DR For my new indexed views to work I need to set ARITHABORT ON
for the whole database, but my vendor warns it will be at my own risk. Is there actually a risk?