OLE DB 공급자를 위한 SQL 언어 요구 사항

OLE DB 공급자가 지원하는 SQL 수준에 따라 SQL Server가 OLE DB 공급자에게 분산 쿼리 작업을 효과적으로 위임하는 정도가 결정됩니다. 공급자가 SQL을 지원하지 않고 행 집합만 열 경우, 분산 쿼리에 원본 행 집합의 행 하위 집합만 필요할 경우에도 SQL Server가 전체 행 집합을 검색하고 모든 논리적 연산을 수행해야 합니다. OLE DB 공급자가 여러 SQL 구문 요소를 지원하면 SQL Server는 행 집합을 SQL Server에 반환하기 전에 원본 공급자가 불필요한 행을 필터링할 수 있게 하는 좀 더 정교한 쿼리를 생성합니다.

OLE DB 사양은 DBPROP_SQLSUPPORT 속성을 정의하며, 이 속성을 통해 공급자는 지원하는 SQL 구문의 수준을 보고할 수 있습니다. SQL Server의 다른 버전이 분산 쿼리에서 필요로 하는 최소 수준의 SQL 지원은 다음과 같습니다.

  • SQL Server 2005: DBPROPVAL_SQL_SUBMINIMUM

  • SQL Server 2000: DBPROPVAL_SQL_SUBMINIMUM

  • SQL Server 7.0: DBPROPVAL_SQL_ANSI92_ENTRY 또는 DBPROPVAL_SQL_ODBC_CORE

원본으로 사용하는 OLE DB 공급자의 더 낮은 수준의 SQL 구문을 지원하는 것 외에도 SQL Server 2000 및 이후 버전은 공급자가 DBPROPVAL_SQL_SUBMINIMUM에 정의된 것 이상의 개별 SQL 구문 요소를 지원함을 지정하는 데 사용할 수 있는 SQLPROPSET_OPTHINTS 속성을 정의합니다. 공급자가 분산 쿼리를 최적화하는 데 사용할 수 있는 한 두 가지 기능만 지원하고 전체 DBPROPVAL_SQL_ANSI92_ENTRY 또는 DBPROPVAL_SQL_ODBC_CORE 구문을 지원하지 않으면, 공급자는 SQLPROPSET_OPTHINTS 속성을 사용하여 지원하는 최적화 기능을 SQL Server에 알릴 수 있습니다.