안녕하세요. 항상 많은 도움 주셔서 고맙습니다.
SQL 전문가 아니라, 질문이 서툰점 이해 부탁 드립니다.
일단 제가 운영하고 있는 사이트는
WEB - API - DB 이렇게 구성되어 있습니다.
Web에서 API를 호출하고, API에서 DB SP를 호출하는 방식입니다.
이때, API에서 DB SP 호출했을 때 속도가 너무 느린 현상이 발견되었습니다. (10초이상)
그래서 SP를 SSMS에서 실행했을 경우 정상적으로 0초 이내로 호출되고 있습니다.
무엇이 문제인지 모르겠어서, SP를 수정해서 다시 반영하였떠니
API에서 DB SP 호출했을 때 0초 이내로 호출되었습니다.
캐시 문제인거 같기도 하고...정확하게 무엇이 문제인지 모르겠어서
이렇게 두서 없이 작성하였습니다.
도움 부탁 드립니다.
말씀하시는 증상의 원인이 이 부분인 것 같습니다.
SQL Server Management Studio에 대한 기본 ARITHABORT 설정은 ON입니다. ARITHABORT를 OFF로 설정하는 클라이언트 애플리케이션에서 다른 쿼리 계획을 받아 성능이 저조한 쿼리 문제를 해결하기 어려울 수 있습니다. 즉, 같은 쿼리가 Management Studio에서는 빨리 실행되지만, 애플리케이션에서는 느리게 실행될 수 있습니다. Management Studio로 쿼리 문제를 해결할 때 항상 클라이언트 ARITHABORT 설정을 일치시키세요.
고맙습니다.
적용해보고 다시 결과 이야기 해드리겠습니다.
고맙습니다. 그래서 SSMS 설정값을 OFF로 동일하게 셋팅하라는 말씀이신가요?
만약에 OFF로 동일하게 셋팅하게 된다면, 어플리케이션에서 호출했던거와 동일하게 SSMS에서도 느리게 호출되는건가요?
그렇다면 결론적으로는 쿼리 문제인건가요?
서두없이 질문만 하게 되어서 죄송합니다.
SSMS에서 실행된 쿼리 계획이 빠른것이니 SSMS에 맞춰서 클라이언트의 설정을 ON으로 설정하면 문제가 해결되겠습니다.