안녕하세요.
프로시저 생성시 인자값에 관해 궁금한 점이 있어서 이렇게 문의를 드립니다.
현재 인자가 말이 안될수도 있지만.... 약 500개(int)로 구성되어 있습니다.
프로시저내 쿼리는 아래과 같고, in 안에 들어오는 값이 인자들 입니다.
select * from abc_tbl where in ( 1,2,3,4,5...... )
이걸 동적 쿼리로 만들어서 외부에서 하나의 인자로 만들어 프로시저를 호출하느냐,
아니면 지금처럼 500개의 인자를 만들어 프로시저를 사용하는냐 라는 문제가 생겼는데요.
어떤 방법이 성능면에서 좋은것인지 선배님들의 조언 부탁드리겠습니다.
.
추가로 sql 메니저에서 500개의 인자를 사용한 프로시저를 수정하고자 해당 프로시저를 열때 로딩 시간이 매우 길어지던데,
이 부분은 실제 서비스 성능과는 무관한 부분일까요????아니면 실제 서비스에 영향을 끼칠까요???
Comment 5
-
처리짱
2013.07.16 10:29
-
세균장군
2013.07.16 10:45
주기적으로 500개의 데이터를 랜덤으로 뽑아 정보를 가져와야해서요.^^;
-
버즈베잇
2013.07.16 10:43
저희쪽은 예전 버전에서는 하나의 인자로 된 동적쿼리로 처리 했었고요...
ms sql 2012 사용시 C# 사용하는 경우 table value parameter 로 처리 했습니다.
-
세균장군
2013.07.16 11:14
동적 쿼리 사용시 성능상 문제는 어떠셨는지요????
-
버즈베잇
2013.07.16 11:39
문제없이 몇년째 서비스 중입니다....
( in 에 걸리는 인자가 저희쪽은 워낙 가변적이라 )
어떤식으로 사용자의 입력을 받기에 500개의 인자가 필요한가요,, ㅠㅜ;
무지 궁금하네요 ㅠㅜ