V minulosti jsem měl podobný problém, takže se těším na řešení této otázky. Komentář Aarona Bertranda k OP vedl k Vyprší časový limit dotazu při spuštění z webu, ale superrychlý při spuštění z SSMS , a přestože otázka není duplicitní, odpověď může velmi dobře platit pro vaši situaci.
V podstatě to zní, jako by SQL Server mohl mít poškozený plán provádění v mezipaměti. Se svým webovým serverem narazíte na špatný plán, ale SSMS přistane na jiném plánu, protože příznak ARITHABORT má jiné nastavení (které by jinak nemělo žádný dopad na váš konkrétní dotaz/uložený proces).
Viz Volání uložené procedury T-SQL ADO.NET způsobí výjimku SqlTimeoutException pro další příklad s úplnějším vysvětlením a rozlišením.