데이터베이스 개발자 질문과 답변 게시판

데이터베이스 개발/운영 관련 질문과 답변을 올리는 게시판입니다. 궁금하신 내용을 이곳에서 문의하시면 SQLER 분들의 답변을 받으실 수 있습니다. 문의를 하실때에는 최근 작업하신 특이 사항이나, 장애 발생 전 상황을 상세히 올려 주시면 답글을 적어주시는 SQLER분들의 답변이 더 정확할 수 있으니 도움 되시길 바랍니다. 쿼리 문의일 경우, 실제 문제가 재현되는 테이블생성, 샘플데이터 생성 쿼리를 함께 올려 주시면 더 빠르고 정확한 쿼리 문의 응답이 가능합니다.

 안녕하세요 2년차 개발자 입니다.

특정 테이블의 ROW 수가 약 1억건 정도 됩니다. 제가 필요한 데이터는 약 2000건 정도 되구요.

현재 제가 제공받은 쿼리는 아래와 같은데 "이력" 테이블이 1억건이 들어있는 테이블입니다.

2000건을 조회하는데에는 약 4분~5분 정도 걸립니다..문제는 이 데이터가 거의 실시간 성으로? 나와야 하는데..인덱스가 걸려있지 않습니다. 


인덱스 생성을 위해 대용량 테이블 인덱스 관련 정보를 조금 찾아봤는데 이해가 되지 않는 부분이 있어서 질문 드립니다.


1. 선택도 고려

아래 쿼리에서는 "설비코드"가 선택도가 가장 좋습니다. 그럴 경우에 "설비코드", "그룹코드", "공장코드" 순으로 생성하면 될까요?

또한 "신호", EndTime(datetime type)을 추가로 인덱스 생성을 원하는 경우 EndTime, "신호" 순으로 생성하면 될까요?


2. 인덱스 효율

대용량 테이블에 인덱스를 설정 할 때는 많은 것을 고려 해야 한다고 봤는데

기본 적으로 "이력" 테이블은 INSERT 작업이 꾸준히 이루어 집니다. 

제가 인덱스를 생성 했을 때 눈에 띄게 INSERT, UPDATE ... 작업이 느려질까요?

또 대용량 테이블에서는 인덱스를 이용하여 scan 했을 때 더 느릴 수도 있다는데 어떤 경우에 그럴 수 있을까요?





-------------------------------------------------------------

SELECT

  *

FROM 설비

LEFT JOIN

(

    SELECT

        공장코드, 그룹코드, 설비코드

    FROM 이력 A

    WHERE 신호 = '정상'

    AND EndTime = (

                                    SELECT

                                          MAX(EndTIme)

                                    FROM 이력

                                    WHERE 공장코드 = A.공장코드

                                    AND 그룹코드 = A.그룹코드

                                    AND 설비코드 = A.설비코드

                              )

) B

ON A.공장코드 = B.공장코드

AND A.그룹코드 = B.그룹코드

AND A.설비코드 = B.설비코드

WHERE A.공장코드 = '특정공장'


No. Subject Author Date Views
10249 데이터 파일 자동 증가 옵션이 시작되는 시점 문의 [1] hardsqlhard 2018.06.14 850
10248 alwayson 이중화 구성시 문의 [1] cococo 2018.06.14 797
10247 sql server 2000 에서 2008 업그레이드시 2000 호환문제 [1] 슈토파이터 2018.06.12 759
10246 안녕하세요 질문있어서 글을 씁니다. snoopy_123 2018.06.12 525
10245 컴퓨터 이름을 바꾸었더니 "your sql server,...."에러가 뜹니다.. [1] 듣기평가 2018.06.11 893
10244 select 에서 채번쿼리 문의드립니다 선배님들 도와주세요ㅠㅠ dkfkqldy1 2018.06.11 792
10243 테이블 2개 조건을 이용하여 데이터 삭제방법 문의 [1] 노란하늘 2018.06.11 793
10242 날짜비교 (형변환) 질문 드립니다. [1] 비폭력무저항 2018.06.08 811
10241 제발 부탁드립니다 하 [1] fjfjfj 2018.06.07 1389
10240 row data 한줄을 두줄로...(현충일인데 근무중 헬프미..) [1] 촐이 2018.06.06 979
10239 다중열 서브쿼리 정렬 질문 [1] 정연석6546 2018.06.05 871
10238 sql 쿼리 질문 드립니다 me3258 2018.06.04 869
10237 LEFT OUTER JOIN 중복관련 질문입니다ㅣ [2] kjw3157 2018.06.04 2010
10236 특정 컬럼에서 연속된 데이터들만 카운트 하는법 질문 드립니다 [3] 스터프 2018.06.04 836
10235 쿼리 질문입니다. 얼음왕자 2018.06.02 584
10234 db의 lock을 강제로 킬하는 타임아웃 설정이 가능한가요? 개발좋아 2018.06.02 667
» 대용량 테이블(1억건) 인덱스 생성 질문 드립니다. [1] 깜우석 2018.06.01 1565
10232 ISDATE INDEX 관련 질문입니다~! [2] 엔더 2018.06.01 695
10231 쿼리 문의드립니다~! [3] 엔더 2018.05.31 752
10230 정말 이상한 사칙연산 결과 질문 드립니다. [1] hackhyun 2018.05.30 941





XE Login