성능

이 항목에서는 데이터 공급자를 사용할 때 성능을 최대화하는 데 도움이 되는 정보를 제공합니다.

성능을 위한 구성

성능을 개선하려면 다음 방식으로 공급자를 구성하십시오.

OLE DB 리소스를 풀링하여 연결 시작 시간 단축

OLE DB 리소스 풀링과 공급자 연결 풀링은 연결 시작 시간을 단축하여 성능을 향상시킬 수 있습니다. 리소스 풀링은 Windows 운영 체제의 일부인 OLE DB 서비스 구성 요소에 의해 사용하도록 설정됩니다. OLE DB 초기화 속성과 레지스트리 설정을 설정하여 OLE DB 리소스 풀링을 사용하도록 설정할 수 있습니다. 자세한 내용은 OLE DB 리소스 풀링(https://go.microsoft.com/fwlink/?LinkID=180446)을 참조하십시오.

공급자 리소스를 풀링하여 연결 시작 시간 단축

연결 풀링은 클라이언트 컴퓨터의 메모리 사용률을 줄이고 연결 시작 시간을 줄이는 클라이언트측 최적화입니다. ADO.NET 공급자, OLE DB 공급자, Entity 공급자 및 BizTalk 어댑터는 연결 풀링을 지원합니다. ADO.NET 연결 문자열 또는 OLE DB 데이터 원본 초기화 문자열(연결 풀링=True)을 사용하여 풀링을 지정할 수 있습니다. 또한 데이터 원본 마법사의 고급 대화 상자와 데이터 연결의 모두 대화 상자를 사용하여 풀링을 구성할 수 있습니다.

공급자는 최대 풀 크기 속성에 따라 연결 캐시를 유지합니다. 기본 풀 크기는 100개의 연결(최대 풀 크기=100)이고 이 값은 데이터 원본 마법사 또는 데이터 연결의 모두 대화 상자를 사용하여 조정할 수 있습니다. 최대 풀 크기 속성에는 상한값이 없습니다. 최대 풀 크기 속성에 0보다 작은 값을 구성하면 기본값인 100이 사용됩니다. 원하는 경우 시간(초)을 지정하여 데이터 공급자에게 클라이언트측 풀링을 사용하는 연결이 설정될 때까지 대기하도록 지시할 수 있습니다. 풀의 모든 연결이 사용 중이고 제한 시간이 만료되면 데이터 공급자는 데이터 소비자에게 오류("연결할 수 없습니다.")를 반환합니다. 기본값은 15초(연결 제한 시간=15)이고 이 값은 데이터 원본 마법사 또는 데이터 연결의 모두 대화 상자를 사용하여 조정할 수 있습니다. 연결 제한 시간 속성에는 상한값이 없습니다. -1을 지정하여 데이터 공급자에게 클라이언트측 연결 풀의 열린 연결을 무기한 대기하도록 지시합니다.

데이터를 가져올 때 행 집합 캐시 최적화

RowSetCacheSize 속성은 행을 처리하여 데이터 소비자에게 반환하는 동안 데이터 공급자에게 DB2에서 행을 프리페치하도록 지시합니다. 이 기능을 사용하면 다중 프로세서 또는 다중 코어 컴퓨터에서 대량 읽기 전용 작업의 성능이 향상될 수 있습니다. 이 속성의 기본값은 0(RowsetCacheSize=0)이며 선택적 프리페치 기능이 “꺼짐” 상태임을 나타냅니다. 값을 10부터 100 사이로 설정하고 초기값은 10으로 설정하는 것이 좋습니다. 이 값은 데이터 원본 마법사 또는 데이터 연결의 모두 대화 상자에서 조정할 수 있습니다. 이 속성은 데이터 공급자에게 데이터 공급자의 행 집합 캐시에 저장된 행 배치 개수까지 프리페치하도록 지시합니다. 행 배치의 크기는 소비자가 지정한 OLE DB IRowset::GetNextRows 인터페이스의 cRows 값을 기반으로 자동 결정됩니다.

실행할 때까지 매개 변수를 포함한 명령의 준비 지연

지연 준비는 데이터 공급자에게 매개 변수가 있는 INSERT, UPDATE, DELETE 및 SELECT 명령 처리 과정을 최적화하도록 지시합니다. ADO.NET 연결 문자열 또는 OLE DB 데이터 원본 초기화 문자열(지연 준비=True)을 사용하여 이 옵션을 지정할 수 있습니다. 또한 데이터 원본 마법사의 고급 대화 상자와 데이터 연결의 모두 대화 상자를 사용하여 풀링을 구성할 수 있습니다. INSERT, UPDATE 및 DELETE 명령의 경우 데이터 공급자가 준비, 실행 및 커밋 명령을 원격 데이터베이스에 대한 하나의 네트워크 흐름으로 결합합니다. SELECT 명령의 경우에는 데이터 공급자가 준비 및 실행 명령을 하나의 네트워크 흐름으로 결합합니다. 이를 통해 네트워크 트래픽이 최소화되고 전체적인 성능이 향상됩니다.

DB2 섀도 카탈로그에서 스키마 정보 가져오기

섀도 카탈로그 속성은 데이터 공급자가 DB2 섀도 카탈로그에서 스키마 정보를 검색하도록 지시합니다. DB2 관리자는 테이블, 열, 기본 키 및 인덱스에 대한 스키마 정보를 포함하도록 섀도 카탈로그를 정의할 수 있습니다. 모든 데이터 소비자는 디자인 타임에 이 스키마 정보를 사용합니다. 일부 데이터 소비자는 런타임에 이 정보를 사용합니다. DB2 스키마 카탈로그는 쓰기 작업 동안 잠기기 때문에 액세스하지 못할 수 있습니다(create 및 alter 문 실행). 또한 기본 DB2 스키마의 큰 크기로 인해 디자인 타임 및 런타임 데이터 소비자 작업이 지연될 수 있습니다. 섀도 카탈로그는 스키마를 가져오는 작업을 수행할 때 경합을 줄여 성능을 높일 수 있습니다.

단일 작업 단위에서 여러 행 보내기

데이터 공급자는 Integration Services와 같은 소비자가 최적화된 배치에서 여러 INSERT, UPDATE, DELETE 또는 CALL 문을 실행할 수 있도록 OLE DB IRowsetFastLoad 인터페이스를 지원합니다. 이를 통해 TCP/IP 네트워크 패킷이 효율적으로 사용되고 전반적인 성능이 향상됩니다. Business Intelligence Developer Studio 패키지 디자이너를 사용하여 Integration Services 패키지 내의 데이터 흐름에서 OLE DB 대상을 구성할 때 RowsetFastLoad를 선택합니다. IRowsetFastLoad 인터페이스는 z/OS용 DB2 V8 및 V9, i5/OS용 DB2 V5R4 및 V6R1, LUW용 DB2 V9로 행을 삽입, 업데이트 또는 삭제할 때 지원됩니다. 자세한 내용은 OLE DB 대상 사용자 지정 속성 에서 Integration Service용 AccessMode (https://go.microsoft.com/fwlink/?LinkID=241518)를 참조하십시오.

장기 실행 쿼리를 종료하기 위한 명령 제한 시간

데이터 공급자는 성능을 저하시킬 수 있는 장기 실행 쿼리를 자동으로 종료할 수 있는 명령 제한 시간 속성을 제공합니다. OLE DB Rowset DBPROP_COMMANDTIMEOUT의 기본값은 0이며, 이 값은 제한 시간이 없음을 의미합니다.

여러 소비자의 명령 제한 시간 값을 지정할 수 있습니다. 데이터 공급자는 성능을 저하시킬 수 있는 장기 실행 쿼리를 자동으로 종료할 수 있는 OLE DB 행 집합 DBPROP_COMMANDTIMEOUT 속성을 제공합니다. Integration Services 및 Analysis Services에서는 Business Intelligence Development Studio의 데이터 원본 쿼리 제한 시간 옵션에서 이 속성이 표시됩니다. Reporting Services에서는 Business Intelligence Development Studio의 데이터 집합 속성 옵션에서 이 속성이 표시됩니다. 복제 및 쿼리 프로세서에서는 sp_serveroption, @optname=query time-out을 통해 이 속성이 표시됩니다.

성능 측정

성능을 측정하기 위해 데이터 공급자는 성능 카운터를 제공합니다. 기본적으로 성능 카운터는 꺼져 있습니다. 다음 레지스트리 키의 값을 1로 설정하여 켤 수 있습니다.

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Host Integration Server\Data Integration\UpdateCounters = 1

데이터 공급자 성능 카운터는 열린 연결, 열린 문, 주고 받은 패킷과 바이트, 평균 호스트(DB2 서버) 처리 시간, 명령 실행, 데이터 인출 및 트랜잭션 커밋/롤백에 대한 정보를 캡처합니다. 자세한 내용은 성능 카운터(https://go.microsoft.com/fwlink/?LinkID=119211)를 참조하십시오.