Udostępnij za pośrednictwem


Keyset-Driven Cursors Requirements for OLE DB Providers

Transact-SQL kursory opartej na zestaw kluczy może odwoływać tabel zdalnych tylko wtedy, gdy spełnione są następujące warunki:

  • kwerenda rozproszona musi spełniać wymagania dla instrukcja SELECT w instrukcja DECLARE CURSOR, która deklaruje kursor, którego podstawę stanowi zestaw kluczy.Aby uzyskać więcej informacji na temat Transact-SQL warunki pomocy technicznej kursor, którego podstawę stanowi zestaw kluczy, zobacz DECLARE CURSOR (Transact-SQL).

  • Wszystkie tabele lokalne na kwerendy musi mieć indeks unikatowy.Indeks tabela zdalna powinny być narażeni za pomocą zestawu zestaw wierszy INDEKSÓW z IDBSchemaRowset interfejs.

Wymagania dotyczące indeksu w dostawcy OLE DB

SQL Server można użyć indeksy na tabelach z dostawca OLE DB do oceny niektóre kwerendy.Dla SQL Server Aby korzystać z indeksu, dostawca powinien narazić interfejsy OLE DB, które umożliwiają skanowanie indeksu zestaw wierszy, wyszukiwanie w zestawie wierszy indeksu za pomocą wartości indeksu kolumna, a następnie ustawić pozycję wierszy w zestawie wierszy tabela bazowa, za pomocą zakładki z zestawu wierszy indeksu.

Za pomocą indeksy dostawca OLE DB ma wydajność, tylko wtedy, gdy zestawów wierszy indeksu i tabela znajdują się na tym samym komputerze co wystąpienie SQL Server. Dlatego też Ścieżka dostępu jako indeks opcja powinna być zestaw tylko wtedy, gdy urządzenie źródłowe danych znajduje się na tym samym komputerze co SQL Server.

SQL Server można użyć indeksy dostawca OLE DB, tylko wtedy, gdy spełnione są następujące warunki:

  • Dostawca musi obsługiwać IDBSchemaRowset interfejs z wierszy schematu tabele, COLUMNS i INDEKSÓW.

  • Dostawca musi obsługiwać otwarcie zestawu zestaw wierszy w indeksie przez IOpenRowset , określając nazwę indeksu i odpowiadające im nazwy tabela bazowa.

  • Obiekt indeksu musi obsługiwać wszystkie wymagane interfejsy: IRowset, IRowsetIndex, IAccessor, IColumnsInfo, IRowsetInfo, and IConvertTypes.

  • Zestawy zestaw wierszy otwarty indeksowanej tabela bazowa, za pomocą IOpenRowset, musi obsługiwać IRowsetLocate interfejs pozycjonowanie na wiersz w tabela bazowa oparte wyłącza zakładkę z zestawu zestaw wierszy indeksu.

Jeśli dostawca OLE DB spełnia te wymagania, SQL Server Administrator może zestaw Indeks jako ścieżka dostępu włączyć opcję dostawcySQL Server Aby używać indeksów dostawcy do analizowania kwerend. Domyślnie SQL Server nie próbuje używać indeksów dostawca, chyba, że opcja ta jest ustawiona.

Wymagania można aktualizować kursor zestaw kluczy

Tabelę zdalną można zaktualizować lub usunąć za pomocą kursora zestawu kluczy w kwerendzie rozproszonej.Na przykład UPDATE | DELETE remote_table WHERE CURRENT OF cursor_name.

Warunki, pod którym można aktualizować kursory przed kwerendami rozproszonymi są dozwolone są następujące:

  • Dostawca powinien spełnią warunki określone dla aktualizacji i usuwania w tabela zdalnej.Aby uzyskać więcej informacji zobaczUPDATE and DELETE Requirements for OLE DB Providers.

  • Wszystkie operacje kursor musi być w transakcji jawnej użytkownika lub multi-instrukcja transakcji z poziom izolacji poziomu lub możliwy Odczyt powtarzalny izolacji.

Dostawca musi obsługiwać transakcji rozproszonych za pomocą ITransactionJoin interfejs.