조건이 너무 복잡하군요.
MySQL 의 경우 사실 Qyuery 처리 속도 자체는 엄청나게 느립니다. 아마도 SQL Engine 자체의 문제라고 생각됩니다. 그러므로 복잡한 Query 문의 처리 속도가 많이 느리다는 것이지요. 그리고 not in 조건문에 여러개의 항목을 적었다고 해서 많이 느려지지는 않습니다. 아래 Query 문은 만약 테이블에 자료건수가 많다면 장난이 아니게 느릴 것 같은 생각이 듭니다. 왜냐 하면 조건도 많지만 그기다가 count(*) 라는 aggregate 함수까지 사용하셨군요. MySQL 은 자료의 입출력에는 엄청난 장점을 보이지만 Query 처리 부분에서는 다른 DBMS 보다 빠르질 않습니다.
> 지금 무척이나 나름대로 해결하는데 노력을 해보는데 영 안되네요..
> 도움을 청합니다.
> 특정 id를 제외하고 쿼리를 돌리려 하는데,
> not in 조건에 항목을 2개만 넣어도 쿼리가 빠른데,
> 다음과 같이 not in 조건에 항목을 4개 넣으니 응답이 전혀 없네요...
> 혹시나 해서 not in 조건을 2개씩 두개로 분할을 해도 역시 마찬가지이고요
>
> select count(*) as cnt
> from igt_document a,igt_docfolder b,igt_log c
> where a.doc_yearmon=b.doc_yearmon and b.userlog_id=c.userlog_id
> and a.doc_number=b.doc_number
> and (c.userlog_type='3' or (c.userlog_type='6' and a.fax_page=1))
> and b.folder_date> (sysdate-7)
> and c.userlog_id not in ('유우머','01011','010112','0101113')
> and a.doc_type='4';
|