Rozproszona architektura kwerendy

Microsoft SQL Server supports two methods for referencing heterogeneous OLE DB data sources in Transact-SQL statements:

  • Nazwy serwera połączonego

    procedury składowane w systemie Sp_addlinkedserver i sp_addlinkedsrvlogin są używane do nadania nazwa serwera Yródło danych OLE DB.Obiekty te serwery połączone można odwoływać się w Transact-SQL za pomocą instrukcji czteroczęściowym nazwy.Na przykład, jeśli jest połączony nazwa serwera z DeptSQLSrvr jest zdefiniowane inne wystąpienie SQL Server, następująca instrukcja odwołuje się do tabela na tym serwerze:

    SELECT JobTitle, HireDate 
       FROM DeptSQLSrvr.AdventureWorks2008R2.HumanResources.Employee;
    

    Połączone nazwa serwera można również określić w instrukcja OTWÓRZKWERENDĘ otworzyć zestawu zestaw wierszy ze źródło danych OLE DB.Ten zestaw wierszy mogą następnie odwoływać się jak tabela w Transact-SQL instrukcji.

  • Nazwy ad hoc łącznika

    Dla rzadkie odwołania do źródło danych funkcji OPENROWSET lub OPENDATASOURCE są określone informacje niezbędne do nawiązania połączenia z serwer połączony.Zestaw wierszy mogą następnie odwoływać się samo odwołuje się do tabela Transact-SQL sprawozdania:

    SELECT *
    FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
            'c:\MSOffice\Access\Samples\Northwind.mdb';'Admin';'';
            Employees);
    

SQL Server OLE DB używa do komunikacji między aparat relacyjny i aparat magazynu.aparat relacyjny Dzieli każdego Transact-SQL instrukcja do szeregu operacji na proste OLE DB zestawów wierszy otwartych przez aparat magazynu z tabel podstawowych.Oznacza to, że aparat relacyjny można także otworzyć prosty OLE DB zestawów wierszy na dowolnego źródło danych OLE DB.

Aparat relacyjny, warstwa OLE DB, aparat magazynu

aparat relacyjny używa interfejs programowania aplikacji (API) OLE DB do otwierania zestawów wierszy na serwerach połączonych, pobierania wierszy i zarządzania transakcjami.

Dla każdego źródło danych OLE DB, dostępne jako serwer połączony, dostawca OLE DB musi znajdować się na serwerze z systemem SQL Server.Zestaw Transact-SQL operacji, które mogą być używane wobec określonego źródło danych OLE DB zależy od możliwości dostawca OLE DB.Aby uzyskać więcej informacji, zobacz OLE DB Provider odniesienia dla kwerend rozproszonych.

For each instance of SQL Server, members of the sysadmin fixed server role can enable or disable the use of ad-hoc connector names for an OLE DB provider using the SQL Server DisallowAdhocAccess property.Włączenie dostępu ad-hoc każdy użytkownik zalogowany do wystąpienie wykonać instrukcji SQL zawierające nazwy łącznika ad hoc, odwoływanie się do dowolnego źródło danych w sieci można uzyskać dostęp przy użyciu tego dostawca OLE DB.Aby kontrolować dostęp do źródeł danych, członkowie sysadmin roli można wyłączyć dostęp ad hoc dla tego dostawca OLE DB, ograniczające użytkownikom tylko te źródła danych, które odwołują się nazw serwer połączony zdefiniowanych przez administratorów.Domyślnie jest włączony dostęp ad hoc dla SQL Server dostawca OLE DB i wyłączone dla wszystkich innych dostawców OLE DB.

Kwerendami rozproszonymi można zezwolić użytkownikom na dostęp innego źródło danych (na przykład, pliki, dane-relacyjnych źródeł, takich jak usługi Active Directory i tak dalej) za pomocą kontekstu zabezpieczeń Microsoft konta systemu Windows, w którym SQL Server Usługa jest uruchomiony.SQL Serverpersonifikuje logowania odpowiednio do logowania do systemu Windows; jednak nie jest to możliwe dla SQL Server logowania.Może potencjalnie umożliwić użytkownikowi zapytanie rozproszone innego źródło danych, dla których nie mają dostępu, uprawnień, ale konto, pod którym SQL Server jest uruchomiona usługa ma uprawnienia.Użyj sp_addlinkedsrvlogin do definiowania określonych logowania, które są upoważnione do dostępu do odpowiedniego serwer połączony.Ten formant nie jest dostępny dla nazw ad hoc, więc zachować ostrożność w umożliwieniu dostawca OLE DB dla dostępu ad hoc.

When possible, SQL Server pushes relational operations such as joins, restrictions, projections, sorts, and group by operations to the OLE DB data source.SQL Server does not default to scanning the base table into SQL Server and performing the relational operations itself.SQL Server queries the OLE DB provider to determine the level of SQL grammar it supports, and, based on that information, pushes as many relational operations as possible to the provider.Aby uzyskać więcej informacji, zobacz Wymagania dialekt SQL dla dostawców OLE DB.

SQL ServerOkreśla mechanizm dostawca OLE DB zwraca statystyki wskazujący wartości jak klucz są rozpowszechniane w ramach źródło danych OLE DB.Dzięki temu SQL Server Optymalizator lepiej analizować wzorzec danych kwerendy źródło przeciwko wymagań każdej instrukcja języka SQL, zwiększając optymalizator kwerendy możliwość generowania optymalnej realizacji planów.Aby uzyskać więcej informacji, zobacz Wymagania statystyk dystrybucji dla dostawców OLE DB.