안녕하세요.
초보 웹개발자인데요..
한 5000만건 정도 되는 테이블에 같은 값이 있는지 확인하여 없으면 Insert를 할려고 하는데요..
IF NOT EXISTS( select idx from aa where 날짜 = '날짜' and 이름 = '이름' and 생년월일 = '생년월일')
이렇게 쿼리를 짜면 데이타가 입력 되는데 속도가 괜찮을까요??
고수님들의 답변 부탁드립니다.
Comment 4
-
Hisory
2014.05.16 10:55
-
아더왕
2014.05.16 15:37
네 로그성 테이블이 맞구요.. 데이타는 월단위로 백업테이블로 이동합니다.
인덱스는 현재 IDX란 자동증가 필드에 주어져 있구요..
이게 중복데이터가 들어가지 않게 하기 위해서 시간을 비교해야 되구요..
답변 감사드립니다.
-
항해자™
2014.05.17 14:45
"이름, 생일, 날짜"로 유니크 인덱스가 있을테니, 아래와 같은 쿼리로 하셔도 됩니다,,,
insert into dbo.테이블
select a.이름, a.생일, a.날짜
from ( select @iName as [이름], @iBirth as [생일], @iWorkDate as [날짜] ) as a
left join dbo.테이블 as b
on b.이름 = a.이름
and b.생일 = a.생일
and b.날짜 = a.날짜
where b.이름 is null
-
아더왕
2014.05.26 14:26
다른일로 답변이 달린지 몰랐네요..
아 저런 방법도 있군요..
속도가 어떤지 함 테스트 해봐야겟네요..
답변 진심으로 감사합니다..
즐거운 하루되세요.!!
혹시 로그성 테이블인가여?
로그성이면 일 혹은 월단위로 데이터 이동처리를 해주시는것도 방법일듯 합니다.
문의하신 내용은 데이터 건수도 영향을 무시할수는 없겠지만 데이터의 분포도 및 인덱스에 따라 성능이 결정될꺼 같네여