Odwołanie do operatorów logicznych i fizycznych

Opis operatorów jak SQL Server wykonuje kwerendy lub języka DML (Data Manipulation) instrukcja.optymalizator kwerendy używa operatorów do konstruowania planu kwerend, aby utworzyć wynik podany w kwerendzie lub wykonać operację, określone w DML instrukcja.Plan kwerend jest drzewa składającego się z fizycznej operatorów.

Operatory są klasyfikowane jako operatorów logicznych i fizycznych.Operatory logiczne opisano relacyjne kwerendy przetwarzania operacji poziom pojęć.Operatorzy fizycznych faktycznie implementuje operacji, określone przez operator logicznego przy użyciu metoda betonu lub algorytm.Na przykład "łączyć" jest operacja logiczna, natomiast "zagnieżdżone pętli sprzężenia" jest operator fizycznej.

  • Operatory logiczne
    Operatory logiczne opisano relacyjne operację algebraicznych używane do przetwarzania instrukcja.Innymi słowy operatory logiczne opisują koncepcyjnie jakie działania musi być wykonywane.

  • Operatorzy fizyczne
    Operatorzy fizycznej realizuje działanie opisane przez operatorów logicznych.Każda fizyczna operatorów jest obiekt lub rutynowych, która wykonuje operację.Na przykład niektóre podmioty gospodarcze fizycznego dostępu kolumn lub wierszy z tabela, widoku lub indeksu.Innych operatorów fizycznego wykonania innych rodzajów operacji: Agregacji operator oblicza wyrażenie zawierające MIN, MAX, Suma, ile.liczb lub AVG oraz Scalania łączyć operator wykonuje różnych rodzajów operacji logicznej łączyć.

    Fizyczne operatorów zainicjować, zbierania danych i zamknąć.W szczególności fizycznej operator można odpowiedzieć na następujące trzy metoda wywołania:

    • Init(): Init() metoda powoduje fizycznego operator do zainicjowania i zestaw zapasowych wymaganych struktur danych.Operator fizyczne mogą otrzymać wiele Init() wywołuje, chociaż zazwyczaj otrzymuje tylko jeden operator fizycznej.

    • GetNext(): GetNext() metoda powoduje fizycznego operator pobrać wiersz pierwszej lub kolejnych danych.Fizyczne operator może pojawić się zero lub wiele GetNext() wywołań.

    • Close(): Close() metoda powoduje fizycznego operator do wykonywania niektórych operacji oczyszczania i zamykanie sam niedziałający.Operator fizycznej otrzyma tylko jeden Close() wywołania.

GetNext() metoda zwraca jeden wiersz danych i liczbę razy, jest nazywany jest wyświetlany jako ActualRows w Showplan wyjściowy jest tworzone za pomocą USTAWIĆ profil statystyki dotyczące lub USTAWIĆ XML statystyki na.Aby uzyskać więcej informacji o tych ustaw opcje, zobacz Ustawianie statystyk profilu (Transact-SQL) i Ustaw statystyki XML (Transact-SQL).

ActualRebinds i ActualRewinds liczby wyświetlanych danych wyjściowych Showplan można znaleźć liczbę razy, Init() wywoływana jest metoda.Chyba że operator jest na wewnętrznej stronie pętli łączyć, ActualRebinds jest równe jeden i ActualRewinds jest równe zero.Jeżeli operator znajduje się na wewnętrznej stronie pętli łączyć, suma liczby rebinds i przewija powinna być równa Liczba wierszy przetworzonych na zewnętrznej stronie łączyć.Ponownego wiązania oznacza, że jeden lub więcej parametrów skorelowanych łączyć zmienione i wewnętrznej stronie musi być reevaluated.Przewiń oznacza, że żaden z parametrów skorelowanych zmieniony zestaw wyników wcześniejszych wewnętrzne mogą zostać wykorzystane ponownie.

ActualRebinds i ActualRewinds znajdują się w danych wyjściowych XML Showplan wyprodukowane przy użyciu zestawu XML statystyki na.Tylko są one wypełniane dla Buforu indeks nieklastrowany, Zdalnego kwerendy, Buforu liczba wierszy, sortowania, Buforu tabeli, i funkcją oródwierszową operatorów.ActualRebinds i ActualRewinds może również zostać wypełnione dla Assert i filtru operatorów po StartupExpression atrybut jest zestaw na wartość TRUE.

Gdy ActualRebinds i ActualRewinds są obecne w Showplan XML są porównywalne z EstimateRebinds i EstimateRewinds.Gdy są nieobecni, szacunkową liczbę wierszy (EstimateRows) jest porównywalna z rzeczywista liczba wierszy (ActualRows).Należy zauważyć, że rzeczywista produkcja Showplan graficzny są nieobecni, wyświetla zer dla rebinds rzeczywiste i rzeczywiste Przewija.Więcej informacji o Showplans graficzny, zobacz Wyświetlanie graficznego wykonanie planów (SQL Server Management Studio).

Pokrewne licznika, ActualEndOfScans, jest dostępny tylko podczas wyjścia Showplan jest produkowany przy użyciu zestawu XML statystyki na.W każdym przypadku, gdy operator fizycznej osiągnie koniec jego strumienia danych, ten licznik jest zwiększany o jeden.Fizyczne operator może osiągnąć koniec strumienia danych jego zero, jeden lub kilka razy.Jako rebinds i przewija numer zakończenia skanowania może być więcej niż jeden tylko wtedy, gdy operator na wewnętrznej stronie pętli łączyć.Liczba zakończenia skanowania powinna być mniejsza lub równa sumie numer rebinds i przewija.

Algorytmy wykonanie odpowiadają fizycznej operatorów.Przykładami operatorów fizycznej skanowania/wyszukiwania indeksu, zagnieżdżonej pętli łączyć, łączyć korespondencji seryjnej, mieszania łączyć/agregacji, agregacja strumienia.Fizyczne operatorzy mają skojarzonych z nimi koszty.Każdy krok w wykonanie kwerendy lub DML instrukcja pociąga za sobą fizycznego operator.

Mapowanie fizyczne i logiczne operatory

optymalizator kwerendy tworzy plan kwerend jako drzewo, składa się z operatorów logicznych.Po optymalizator kwerendy tworzy plan, optymalizator kwerendy wybiera najbardziej efektywne fizyczna operator dla każdego operator logicznego.optymalizator kwerendy używa podejścia opartego na koszt, aby określić, jaki operator fizycznej wdroży operator logiczny.

Zwykle operacja logiczna może być implementowana przez wielu operatorów fizycznej.Jednak w rzadkich przypadkach fizycznej operator można implementować również wiele operacji logicznych.

W tej sekcji

Ta sekcja zawiera opisy następujących operatorów logicznych i fizycznych:

Agregacja

Scalanie interwału

Wyrażenie arytmetyczny

Scalanie sprzężenia

Potwierdzenia

Zagnieżdżonej pętli

Przypisywanie

Usuń indeks nieklastrowany

Concat asynchroniczne

Wstaw indeks nieklastrowany

Mapa bitowa

Skanowanie indeks nieklastrowany

Tworzenie mapy bitowej

Nieklastrowany indeks wyszukiwania

Zakładka wyszukiwania

Buforu indeks nieklastrowany

Oddział ponownego dzielenia na partycje

Aktualizuj indeks nieklastrowany

Emisja

Wstaw indeksu online

Pamięć podręczna

Linie

Usuń indeks klastrowany

Parametr tabeli skanowania

Wstaw indeks klastrowany

Suma częściowa

Scalanie indeksu klastrowanego

Kwerenda populacji

Skanowanie indeksu klastrowanego

Odśwież kwerendę

Szukaj indeks klastrowany

Usuń zdalnego

Aktualizacja indeksu klastrowanego

Zdalne skanowanie indeksu

Zwiń

Zdalny indeksu wyszukiwania

Obliczyć skalarnej

Wstaw zdalnego

Konkatenacja

Zdalne kwerendy

Stała skanowania

Zdalne skanowanie

Konwertowanie

Aktualizacja zdalna

Sprzężenie krzyżowe

Strumienie ponownego dzielenia na partycje

Catchall kursora

Wynik

Zadeklarować

RID wyszukiwania

Usuń

Prawo anty-sprzężenie półtłustego

Usunięto skanowania

Prawe sprzężenie zewnętrzne

Różne

Prawe sprzężenie półtłustego

Sortowanie DISTINCT

Wiersz licznika buforu

Dystrybuować strumienie

Segment

Dynamiczne

Segment ponownego dzielenia na partycje

Chcesz buforu

Sekwencja

Fetch kwerendy

SequenceProject

Filtr

Migawki

Przepływ Distinct

Sortowanie

Pełne sprzężenie zewnętrzne

Podziel

Zbierania strumieni

Buforu

Dopasowanie Mieszanie

Agregat strumienia

Główny dopasowanie Mieszanie

Przełącznik

Zespół dopasowanie Mieszanie

Usuwanie tabeli

Jeżeli

Wstawianie tabeli

Sprzężenie wewnętrzne

Scal tabele

Wstaw

Skanowanie tabeli

Wstawiony skanowania

Tabela buforu

Wewnętrzne

Aktualizacja tabeli

Catchall sterująca

Funkcją oródwierszową

Wyszukiwanie klucza

U góry

Zestaw kluczy

Sortowanie góry n

Język elementu Catchall

UDX

Opóźnieniem buforu

Union

Po lewej stronie anty-sprzężenie półtłustego

Aktualizacja

Lewe sprzężenie zewnętrzne

Podczas

Lewe sprzężenie półtłustego

Kursor operatorów logicznych i fizycznych

Skanowanie wiersza dziennika