일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 개발
- 터미널옵션
- .netcore
- ChatGPT
- 웹퍼블리셔종말
- classNames
- JWT 토큰
- JWT 토큰 인증 로그인 쿠키 설정
- 초보
- 스케쳐스아치핏
- asp.net core
- 웹퍼블리셔전망
- json pretty
- c#
- nodejs
- typesinstall
- 곧아빠됨
- 아들에게
- 메일수신거부처리
- ts7016
- @types
- 패키지관리자
- 개발언어
- 메일수신거부 프로세스
- 게시판
- 마이너스의 의미
- 하마모양
- pnpm
- locofy.ai
- TS70016
- Today
- Total
I am maker
MSSql 스토어드 프로시져 사용시에만 Timeout에러. 잘못된게 없는데 에러나는 저장함수 호출 본문
MSSql 스토어드 프로시져 사용시에만 Timeout에러. 잘못된게 없는데 에러나는 저장함수 호출
코딩하는고릴라 2017. 5. 15. 16:19난생 처음 겪는 특이한 일이었다.
4시간은 족히 쳐다본거같다.
진작에 구글링할걸,,,,,,, 에러가 워낙 신기해서 한참보다가 구글링해서 금방해결했다...
증상
c# 코드에서 갑자기 SqlConnection으로 스토어드 프로시져 호출시 timeout 에러가 난다.
이 때 SSMS(SqlServerManagementStudio)에서 동일한 매개변수로 호출 시 잘 작동한다.
또한 스토어드 프로시져 내의 쿼리를 가져와 SqlCommand의 CommandType을 text로 변경하여 날려도 잘 작동한다.
게다가 c#코드에서 동일한 쿼리를 호출하는데 파라미터 값만 살짝 다르면 잘 작동한다.
즉, c# 코드에서 스토어드 프로시져 호출시 timeout에러가 나긴하는데.
평소에는 잘 작동하고
db쿼리에서도 작동을하고,
c# 코드에서 날쿼리로 날려도 작동을하는
뭐가 문제인지 모를 상황.
Recompile하면된다.
https://docs.microsoft.com/en-us/sql/relational-databases/stored-procedures/recompile-a-stored-procedure
여길 보면 DB스키마 등 변경이있을 때 , 이 옵션을 쓰면 쿼리 플랜 등을 recompile하고 최적화하여, 성능향상도 가능하다고 나와있다.
방법은 3가지
1. Stored 생성시 WITH RECOMPILE
CREATE PROCEDURE 프로시져명
@매개변수 varchar(30) = '%'
WITH RECOMPILE
AS SET NOCOUNT ON;
....
2. Stored 호출시 RECOMPILE
EXECUTE 프로시져명 WITH RECOMPILE;
3. sp_recompile 프로시져로 RECOMPILE하기
EXEC sp_recompile N'프로시져명';
'문제해결(Trouble shootings)' 카테고리의 다른 글
ubuntu 17.10 무료 ssl https certbot letsencrypt 설정 (0) | 2018.05.12 |
---|---|
ubuntu17.10 certbot https 인증에서 사이트 하나 제거하기 (0) | 2018.05.12 |
어떤 IIS 웹사이트(w3wp.exe)가 어떤 로그인지 확인하는 방법? (0) | 2017.05.08 |
SignalR url이 localhost 말고는 안될때 (0) | 2017.04.26 |
윈폼 막대차트 버그, 막대가 좌우로 엄청 넓어짐. Winform Bar Chart Bug. Bar width suddenly become wide, When Series are Dynamically Binded (0) | 2016.07.06 |