DataBase

[MS-SQL] IN 구문 사용 시 매개변수 2100개 초과

Hyo Kim 2021. 11. 9. 17:58
728x90
반응형

서론

잘 되던 게 안 됐다.

어떤거 때문일까??🤔

 

본론

Exception 메세지
공식사이트

MS-SQL에서는 매개변수를 최대 2100개까지만 허용하도록 해놓았다.

 

원인은 IN문을 통해 2100개 이상의 매개변수가 전달이 되어서 안 됐던 것..

이전에는 2100개까지 전달할 일이 없었지만 최근 데이터가 커지면서 발견된 버그!

SQL에 대해 또 하나를 알아간다..

 

* 해당 문제는 IN으로 조회한 컬럼 외에 다른 컬럼으로도 조회할 수 있는 방법으로 해결이 되었다. *

IN 문 자체가 효율이 좋지 않기 때문에 IN을 쓸 때에는

다른 방법으로 할 수 있는지를 체크해 보는 것도 좋은 방법일 것 같다.

 

다른 SQL들은 ?? 😏

MySQL은 max_allowed_packet 값을 통해 최대 크기가 결정되는 데 기본 값은 64MB 이다.

Oracle은 최대 1000개로 지정되어 있지만 다른 방법으로도 조회가 가능한 것 같다. (링크)

728x90
반응형