In SQL Server Management Studio the default setting for Query Execution 'ARITHABORT' setting is ON. In ADO.NET the default setting is OFF. This can cause problems when trying to optimise your slow running queries, as the execution plans used by .NET and SSMS can be different. This can result in different execution times of your RPC completed vs SP completed in SQL Profiler. Also, it can cause your ADO.NET based queries to run slower, if the plan was optimised for the SSMS based query. In order to avoid this problem, I would recommend setting the option to OFF in SSMS: Tools > Options > Query Execution > SQL Server > Advanced.. Also, if you have come across this problem, after having changed the setting it may be worth clearing your plan cache: