SSIS 기타 사항
성능 카운터
SQL Server 2005에서는 SSIS와 관련된 기본 성능 카운터를 제공합니다.
[제어판] à [관리도구] à [성능]을 선택하여 성능 모니터를 띄웁니다. 성능 개체 중 SQLServer:SSIS Pipeline과 SQLServer:SSIS Service가 SSIS의 성능을 모니터링 할 수 있는 카운터 입니다.
SQLServer:SSIS Service 개체에는 SSIS Package Instances라는 카운터만 존재하며 현재 수행되고 있는 SSIS 패키지의 개체 수를 나타냅니다.
SQLServer:SSIS Pipeline 개체의 카운터는 다음 표를 참고하시기 바랍니다. 이 개체는 데이터 흐름 작업에서의 성능에 대한 정보를 제공합니다. 현재 패키지가 사용하고 있는 메모리 버퍼의 크기라든지, 원본 또는 대상에서의 행 수, BLOB(Binary Large Object) 데이터의 통계 정보 등을 제공합니다.
성능 카운터 |
설명 |
BLOB bytes read |
데이터 흐름 엔진이 모든 원본에서 읽어 온 BLOB(Binary Large Object) 데이터의 바이트 수입니다. |
BLOB bytes written |
데이터 흐름 엔진이 모든 대상에 기록한 전체 BLOB 데이터의 바이트 수입니다. |
BLOB files in use |
데이터 흐름 엔진이 스풀링을 위해 사용하는 BLOB 파일 수입니다. |
Buffer memory |
사용 중인 모든 유형의 메모리 버퍼 양입니다. 이 값이 물리적인 메모리의 양보다 크면 Buffers Spooled는 늘어나며 이는 메모리의 스와핑이 증가함을 나타냅니다. 메모리 스와핑이 증가하게 되면 데이터 흐름 엔진의 성능이 떨어집니다. |
Buffers in use |
데이터 흐름 엔진이 현재 사용 중인 모든 유형의 버퍼 개체 수입니다. |
Buffers spooled |
디스크에 쓰여진 버퍼 수입니다. 데이터 흐름 엔진에 물리적 메모리가 부족하면 현재 사용되지 않은 버퍼는 디스크에 쓰여지고 필요에 따라 다시 로드됩니다. |
Flat buffer memory |
모든 플랫 버퍼가 사용하는 전체 메모리(바이트)입니다. 플랫 버퍼는 구성 요소가 데이터 저장에 사용하는 메모리 블록입니다. 플랫 버퍼는 바이트의 큰 블록이며 바이트 단위로 액세스됩니다. |
Flat buffers in use |
데이터 흐름 엔진이 사용하는 플랫 버퍼 수입니다. 모든 플랫 버퍼는 전용 버퍼입니다. |
Private buffer memory |
모든 전용 버퍼가 사용하는 전체 메모리 양입니다. 데이터 흐름 엔진이 데이터 흐름을 지원하기 위해 만드는 버퍼는 전용 버퍼가 아닙니다. 전용 버퍼는 변환 작업에서 임시 작업용으로만 사용하는 버퍼입니다. 예를 들어 집계 변환은 전용 버퍼를 사용하여 내부 계산을 수행합니다. |
Private buffers in use |
변환 작업에서 사용하는 버퍼 수입니다. |
Rows read |
원본에서 생성하는 행 수입니다. 조회 변환이 참조 테이블에서 읽은 행은 포함되지 않습니다. |
Rows written |
대상에 제공된 행 수입니다. 대상 데이터 저장소에 쓰여진 행은 반영되지 않습니다. |
성능 카운터에서의 Private buffer와 Flat buffer는 다음과 같습니다.
Ÿ Private buffer – 정렬 변환이나 집계 변환 등과 같이 변환 작업 개체가 결과를 처리하기 위해 사용하는 임시 메모리 공간을 말합니다.
Ÿ Flat buffer – 데이터 흐름 작업에서 데이터를 저장하는데 이용되는 메모리 공간을 말합니다. 예를 들어, 조회 변환에서 조회 테이블의 데이터를 저장시켜서 사용할 때 Flat buffer가 이용됩니다.
성능 카운터에서 제공하는 메모리와 관련된 정보를 이용하여 시스템 환경에 맞는 값을 설정하여 패키지의 처리 성능을 향상시킬 수 있습니다.
예를 들어, 현재 작업량에 비해 사용 가능한 메모리의 공간이 큰 경우, DefaultBufferSize의 크기를 늘릴 수도 있으며, Text형이나 Image 형과 같은 BLOB(Binary Large bject) 데이터의 처리가 많은 경우, BLOBTempStoragePath를 별도로 지정하여 처리 성능을 개선시킬 수도 있습니다.
SSIS에서의 메모리 제한
SSIS에서 사용 가능한 메모리의 최대 크기는 다음과 같습니다.
Bit 구분 |
옵션 |
최대 메모리 |
32bit Windows |
boot.ini 내 /3GB 옵션이 없는 경우 |
2 GB |
boot.ini 내 /3GB 옵션이 있는 경우 |
3 GB | |
64bit Windows |
64bit process |
16 TB |
32bit WOW |
4 GB |
WOW(Windows on Windows) : 64bit 환경에서 32bit 응용 프로그램을 수행할 수 있도록 한 기술
※ 최대 메모리 크기는 개별 패키지 하나에 대한 제한 사항입니다. 즉, 서버의 메모리가 4 GB 이상인 환경에서 2 GB 메모리를 사용하는 SSIS 패키지를 동시에 여러 개 수행 가능합니다.
※ SSIS는 Windows의 AWE(Address Windowing Extensions)를 사용하지 않습니다.
패키지 저장 방식에 따른 장점
SSIS에서는 기본적으로 세 가지 방식으로 패키지를 저장할 수 있습니다.
1. SQL Server로 지정하게 되면 SQL Server의 msdb에 저장됩니다. 해당 패키지의 정보는 msdb.dbo.sysdtspackages90 테이블에 저장됩니다.
2. 파일 시스템으로 저장할 경우에는 사용자가 지정한 위치로 저장합니다.
3. SSIS 패키지 저장소 역시 파일 형식으로 패키지를 관리하지만, 저장 위치는 서버의 특정 위치에 저장됩니다.
기본적으로 %ProgramFiles%\Microsoft SQL Server\90\DTS\Packages 에 저장됩니다.
즉, 패키지는 SQL Server에 저장되거나 파일로 저장되어 관리됩니다. 각각의 방식에 따른 장점은 다음과 같습니다.
Ÿ 파일로 저장하여 관리하는 방식의 장점
① 연결 정보를 쉽게 공유하여 사용할 수 있습니다.
② 보안 설정에서 사용자 키 기반의 암호화(EncryptSensitiveWithUserKey 또는 EncryptAllWithUserKey)로 설정한 경우, 매우 강력한 패키지 암호화를 구현할 수 있습니다. 이 경우, 해당 사용자의 프로필 환경 외에서는 패키지 수정이나 조회가 어렵습니다.
③ 네트워크 장애 또는 DB 장애 발생시에도 안전합니다.
④ 구성 파일이나 기타 파일들을 같이 관리하기가 용이합니다.
⑤ 패키지를 수정할 때 개발 환경으로 로드하는 작업이 간단합니다.
⑥ 파일로 관리되기 때문에 파일 시스템의 계층 구조를 이용하여 관리할 수 있습니다.
⑦ Visual Studio의 프로젝트가 파일 형식으로 관리되기 때문에 프로젝트에 포함시켜 개발하기 용이합니다.
è 즉, 자주 수정되거나 아직 최종적으로 개발 완료되지 않은 패키지 형태인 경우 파일 형태의 관리가 용이합니다.
Ÿ SQL Server로 저장하여 관리하는 방식의 장점
① 여러 사용자들이 공유하기가 편합니다.
② 데이터베이스의 보안 기능을 사용하여 관리할 수 있습니다. SSIS 패키지의 운영이나 수정과 관련된 역할(Role)등을 적용할 수 있습니다.
③ msdb DB에 테이블 형태로 저장되기 때문에 일반 DB 백업과 같은 방식으로 패키지를 백업하여 관리할 수 있습니다.
④ SQL 쿼리를 이용하여 패키지에 대한 정보를 조회할 수 있습니다.
è 즉, 자주 수정이 일어나지 않는 형태인 운영 환경에서는 SQL Server 형태의 관리가 용이합니다.
'연구개발 > DTS & SSIS' 카테고리의 다른 글
실습 강좌 1 - 텍스트 데이터 파일을 테이블로 로딩하기 (0) | 2009.06.20 |
---|---|
실습 강좌 0 - 강좌 소개 - 텍스트 파일 로딩 (0) | 2009.06.20 |
기본 강좌 49 - 배포 및 배포 마법사 (0) | 2009.06.20 |
기본 강좌 48 - 보안 (0) | 2009.06.20 |
기본 강좌 47 - 로깅 (0) | 2009.06.20 |