Miałem podobny problem w przeszłości, więc nie mogę się doczekać rozwiązania tego pytania. Komentarz Aarona Bertranda na temat OP doprowadził do Przekroczono limit czasu zapytania po wykonaniu z sieci, ale superszybko po wykonaniu z SSMS , i chociaż pytanie nie jest duplikatem, odpowiedź może bardzo dobrze pasować do Twojej sytuacji.
Zasadniczo wygląda na to, że SQL Server może mieć uszkodzony plan wykonania w pamięci podręcznej. Uderzasz w zły plan z serwerem sieciowym, ale SSMS ląduje na innym planie, ponieważ istnieje inne ustawienie flagi ARITHABORT (co w przeciwnym razie nie miałoby wpływu na twoje konkretne zapytanie/przechowywany proces).
Zobacz Wywołanie procedury składowanej T-SQL przez ADO.NET powoduje wyjątek SqlTimeoutException na inny przykład, z pełniejszym wyjaśnieniem i rozwiązaniem.