반응형
다음과 같이 lookuptable이라는 1000만건 데이터에 대해 facttable 이라는 3만건 데이터가 조회 작업을 수행하는 환경을 구현해 보았습니다.

 

다음은 SQL 2000 DTS에서 구성한 작업입니다.

 

 

위의 작업을 수행한 후 프로필러로 수행 상태를 확인하면 다음과 같습니다.

 

 

, 입력된 행에 대해 조회 쿼리를 날려서 결과를 받아내는 방식이지요..

 

 

SQL 2005 SSIS에서도 동일한 DB(OLE DB 연결)에 대해 조회 작업을 수행하였습니다.

 

 

고급 탭에서 우선 메모리 제한 사용을 체크 하지 않고 수행하면 다음과 같습니다.

 

 

CPU 난리나고 메모리도 난리나지요~~^^

 

프로필러에서는 다음과 같은 조회 쿼리가 수행되어 1000만건을 다 메모리에 올립니다.

 

 

만약 메모리 제한 옵션을 준다면, 메모리 만큼 올리겠지요..

 

 

그럼 고급 탭의 아래에 있는 SQL 문 수정을 체크한다면??

 

 

정상적으로 별 부하 없이 빨리 수행됩니다. SQL 2000에서와 같이~~

 

 

 

 

결론은??

 

1. 조회할 테이블이 얼마 안될 때에는 캐싱을 사용하거나 일부 캐싱을 사용해서 하는 것이 좋습니다.

2. 조회할 테이블이 위와 같이 많은 경우에는, 반드시 SQL 쿼리 수정 옵션을 이용하여 입력되는 데이터에 대해서만 캐싱을 하도록, 그리고 입력될 때에만 로딩 하도록 설정합니다. 성능은 SQL 2000 보다 좋거나 같습니다. 왜냐면~? SQL 2000 DTS에서는 ActiveX를 이용하여 결과를 받아야 했으며, ActiveX를 이용한 작업은 컴파일이 안된 상태로 처리되기 때문에 느립니다~^^

 

조회 변환과 관련해서는 아래의 강좌 참고하세요~..

 

[ 좌 33]

 

 

 
 




------------------------------------
작성일자 : 2006-11-16 오후 2:41:00
------------------------------------
안녕하세요. sql 초보 오순근이라고 합니다.
제가 아직 잘 모르기 때문에..또 난관에 부딪쳤습니다.
2000->2005 마이그레이션 하는 도중....약 데이터 흐름에서 일정량의 많아봤자 10000개의 레코드셋에 약 2000만개의 데이터를 [조회] 항목을 사용하여 합쳤습니다.
근데 엄청난 캐쉬만 무지하게 읽더니..1800만정도에서 오류가 뜨네요.... C드라이브의 하드가 7기가 인데....2기가 남았다가 1.1기가 정도로 하드 용량이 계속 줄면서 1800만 정도 캐쉬에서 오류가 납니다..ㅠㅠ
 
위와 같은 항목이 나와서 [조회] 항목의 속성에서 메모리 제한을 걸고 하면...
 
 
근데 OLE DB 원본의 데이터가 0행이면 오류가 생기지 않습니다 ㅠㅠ..
2000에서는 아무 이상없었는데...조회 필드에서 그러네요..ㅠㅠ...
간단하게 조회에서 usr_id를 비교해서 조회 레코드의 index를 가져오는것인데..이부분에서 계속 에러가....
하드가 용량이 부족해서 그런건지..(2000에서는 이상이 없습니다 ㅠㅠ) 캐쉬 및 메모리 제한의 문제인지....
궁금합니다...
오늘 하루도 좋은 하루 보내세요..^^
반응형

+ Recent posts