판매 기록 테이블의 레코드 1억3천개일 때, select count(*) 만 2분이 걸리는데, 정상인가요? 0 1 726

by 안떠니 [2021.11.10 14:43:02]


판매 기록 테이블 A 는 지난 20년치 1억3천개 가량의 레코드를 갖고 있습니다.

판매점 유형 (대형마트, 약국, 주유소 등) 별로 판매 기록을 가져오는 쿼리가 대략 7분 정도 걸리네요.

그래서, select count(*) from A 는 몇분이나 걸리나 해봤더니, 달랑 이 문장만 2분이 걸리네요.

그러면, 7분 걸리는 쿼리는 정상인가요? 아니면 쿼리를 최적화할 필요가 있을까요?

만일, count 결과처럼 2분으로 줄어들 희망이 있을까요? 

조인에서 참조되는 테이블은 판매 기록 이외 2개이며, 판매점 유형을 담고 있는 테이블 B (3천개 레코드), 판매점 단말기 유형 테이블 C (3천개)

 

감사합니다.

by 마농 [2021.11.10 16:09:37]

인덱스 스캔인지? 테이블 스캔인지? 적절한 인덱스가 있는지?
조인후 집계하는 형태의 경우. 집계 후 조인하는 형태로 변경 가능한지?
쿼리가 복잡한지? 비효율은 없는지?

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입