Share via


OLE DB Provider 的 SQL 語法需求

OLE DB 提供者所支援的 SQL 層級決定了 SQL Server 2005 如何有效地將分散式查詢作業委派給 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 和更新的版本還定義了 SQLPROPSET_OPTHINTS 屬性集,提供者可以使用此屬性集來指定:除了 DBPROPVAL_SQL_SUBMINIMUM 所定義的那些 SQL 語法元素以外,還支援個別的 SQL 語法元素。若提供者支援可用來最佳化分散式查詢的一個或兩個功能,但不支援完整的 DBPROPVAL_SQL_ANSI92_ENTRY 或 DBPROPVAL_SQL_ODBC_CORE 語法,則提供者可以使用 SQLPROPSET_OPTHINTS 屬性,通知 SQL Server 它支援哪些最佳化功能。

請參閱

概念

分散式查詢
分散式查詢的 OLE DB 提供者參考資料
DBPROPVAL_SQL_SUBMINIMUM 語法
撰寫 SQLPROPSET_OPTHINTS 屬性集程式

說明及資訊

取得 SQL Server 2005 協助