다음을 통해 공유


OLE DB 공급자의 키 집합 커서 요구 사항

Transact-SQL 키 집합 커서는 다음 조건이 충족될 경우에만 원격 테이블을 참조할 수 있습니다.

  • 분산 쿼리는 키 집합 커서를 선언하는 DECLARE CURSOR 문에 사용된 SELECT 문의 요구 사항을 만족해야 합니다. 키 집합 커서 지원을 위한 Transact-SQL 조건에 대한 자세한 내용은 DECLARE CURSOR(Transact-SQL)를 참조하십시오.
  • 쿼리의 모든 로컬 테이블에 고유 인덱스가 있습니다. 원격 테이블의 인덱스는 IDBSchemaRowset 인터페이스의 INDEXES 행 집합을 통해 제공되어야 합니다.

OLE DB 공급자의 인덱스 요구 사항

SQL Server 2005 는 특정 쿼리를 평가하기 위해 OLE DB 공급자의 테이블에서 인덱스를 사용할 수 있습니다. SQL Server 에서 인덱스를 사용하려면 공급자가 인덱스 행 집합 검색, 인덱스 열 값을 사용한 인덱스 행 집합에서의 검색, 인덱스 행 집합에서 얻은 책갈피를 사용하여 기본 테이블 행 집합에서의 행 위치 설정을 가능하게 하는 OLE DB 인터페이스를 표시해야 합니다.

OLE DB 공급자의 인덱스를 사용하는 경우 인덱스 및 테이블 행 집합이 SQL Server 의 인스턴스와 같은 컴퓨터에 있을 때만 성능이 향상됩니다. 따라서 데이터 원본이 SQL Server 와 같은 컴퓨터에 있을 때만 Index AS Access Path 옵션을 설정해야 합니다.

SQL Server 는 다음 조건이 충족될 경우에만 OLE DB 공급자의 인덱스를 사용할 수 있습니다.

  • 공급자가 TABLES, COLUMNS, INDEXES 스키마 행 집합이 있는 IDBSchemaRowset 인터페이스를 지원해야 합니다.
  • 공급자가 인덱스 이름과 해당 기본 테이블 이름을 지정하여 IOpenRowset을 통해 인덱스의 행 집합 열기를 지원해야 합니다.
  • 인덱스 개체가 IRowset, IRowsetIndex, IAccessor, IColumnsInfo, IRowsetInfoIConvertTypes와 같은 필수 인터페이스를 모두 지원해야 합니다.
  • 인덱싱된 기본 테이블에 대해 IOpenRowset을 사용하여 열린 행 집합이 인덱스 행 집합에서 얻은 책갈피를 기반으로 기본 테이블 행에서의 위치를 지정할 수 있도록 IRowsetLocate 인터페이스를 지원해야 합니다.

OLE DB 공급자가 위의 요구 사항을 충족하면 SQL Server 관리자는 Index As Access Path 공급자 옵션을 설정해 SQL Server 가 공급자의 인덱스를 사용하여 쿼리를 평가할 수 있도록 할 수 있습니다. 이 옵션이 설정되어 있지 않으면 기본적으로 SQL Server 는 공급자의 인덱스를 사용하지 않습니다.

업데이트할 수 있는 키 집합 커서 요구 사항

분산 쿼리에 정의된 키 집합 커서를 통해 원격 테이블을 업데이트하거나 삭제할 수 있습니다. 예를 들면 다음과 같습니다. UPDATE | DELETE remote_table WHERE CURRENT OF cursor_name.

다음 조건에서는 분산 쿼리에 대해 업데이트할 수 있는 커서가 허용됩니다.

  • 공급자가 원격 테이블에 대한 업데이트 및 삭제 조건을 충족해야 합니다. 자세한 내용은 OLE DB 공급자를 위한 UPDATE 및 DELETE 요구 사항을 참조하십시오.
  • 모든 커서 작업은 반복 읽기 격리 수준 또는 순차 가능 격리 수준으로 명시적 사용자 트랜잭션 또는 다중 문 트랜잭션에 있어야 합니다.

공급자는 ITransactionJoin 인터페이스를 사용하여 분산 트랜잭션을 지원해야 합니다.

참고 항목

개념

분산 쿼리를 위한 OLE DB 공급자 참조
분산 쿼리 사용에 대한 지침

도움말 및 정보

SQL Server 2005 지원 받기