Jak Online pracy operacji indeksu

W tym temacie opisano struktury, które istnieją podczas operacji online indeksu i pokazuje działania związane z tymi strukturami.

Struktury indeksu online

Umożliwienie działania współbieżne użytkownika podczas indeks definicja danych operacji języka (DDL) podczas operacji indeksu online są używane w następujących struktur: źródło i gotowe indeksy, miejsce docelowe, i dla indeksów klastrowanych tymczasowy mapowanie indeksu.

  • Źródła i gotowe indeksy

    Źródło jest oryginalnej tabela lub dane indeks klastrowany.Gotowe indeksy są zbudowania indeksów, związane ze strukturą źródło.Na przykład operacja online indeksu przebudowuje indeks klastrowany, zawierający cztery skojarzone zbudowania indeksów nie klastrowanych, źródło jest istniejący indeks klastrowany, i gotowe indeksy są indeksami nieklastrowany.

    Gotowe indeksy są dostępne dla użytkowników równocześnie select, insert, update i operacji usuwania.Obejmuje to niejawne aktualizacji wyzwalaczy i ograniczenia integralność referencyjnej i wstawia luzem (obsługiwane, ale nie zalecane).Wszystkie istniejące indeksy są dostępne dla kwerend i wyszukiwania.Oznacza to, mogą być wybranego przez optymalizator kwerendy i, jeśli to konieczne, określone w wskazówki index.

  • Docelowa

    miejsce docelowe lub cele jest nowy indeks (lub sterty) lub zestaw nowych, indeksy są tworzone lub przebudowanych.Użytkownik insert, update i operacji usuwania źródło są stosowane przez Aparat baz danych programu SQL Server do miejsce docelowe podczas operacji indeks.Na przykład jeśli operacja online indeksu jest przebudowywanie indeksu klastrowanego, obiekt miejsce docelowe jest skompilowane indeks klastrowany Aparat baz danych nie odbudować zbudowania indeksów nie klastrowanych, gdy indeks klastrowany jest odbudowywany.

    Indeks miejsce docelowe nie będzie przeszukiwana podczas przetwarzania instrukcji SELECT, aż operacja indeksu jest zaangażowana.Wewnętrznie indeks jest oznaczony jako tylko do zapisu.

  • Mapowanie tymczasowy indeks

    Operacje online indeksu tworzenie, usuwanie lub odbudować indeks klastrowany wymagają również indeksu tymczasowych mapowania.Ten tymczasowy indeks jest używany przez jednoczesnych transakcji do określenia wiersze, które rekordy do usunięcia w nowe indeksy, które są konstruowany obowiązującymi w tabela źródłowa są aktualizowane lub usuwane.Indeks nieklastrowany utworzone w tym samym kroku jako nowy indeks klastrowany (lub stosu) i nie wymaga operacji sortowania oddzielne.Jednoczesnych transakcji także utrzymać tymczasowe mapowanie indeks wszystkich ich insert, update i operacji usuwania.

Działalność indeksu online

Podczas operacji prosty indeks online, takich jak tworzenie indeks klastrowany w nieindeksowanych tabela (sterty) źródło i miejsce docelowe przechodzenia przez trzech faz: Przygotowanie, kompilacji i final.

Na poniższej ilustracji przedstawiono proces tworzenia online początkowego indeks klastrowany.obiekt źródłowy, Sterty, nie ma żadnych innych indeksów.Źródła i miejsce docelowe strukturę działalności są wyświetlane dla każdej fazy; i wybierz równoczesnych użytkowników, insert, update i operacji usuwania są także wyświetlane.Przygotowanie, kompilacji i ostatecznego faz wskazano wraz z trybów blokada używane w każdej fazy.

Czynności wykonywane w trakcie operacji indeksowania w trybie online

Działalność struktury źródła

W poniższej tabela przedstawiono działalności obejmującej struktur źródło podczas każdej fazy działania indeksu i odpowiednich strategii blokowania.

Faza

Źródło aktywności

Źródło blokad

Przygotowanie

Bardzo krótkie fazy

System preparation metadane do utworzenia nowej struktury pusty indeks.

migawka tabela jest zdefiniowana.Oznacza to, że wersji wiersza jest używany zapewnienie spójności odczytać poziom transakcji.Aby uzyskać więcej informacji, zobacz Opis wiersza na podstawie wersji poziomów izolacji.

Użytkownik równoczesnych operacji zapisu na źródło są blokowane przez bardzo krótki okres.

Z wyjątkiem tworzenia wielu zbudowania indeksów są dozwolone żadne równoczesne operacje DDL.

S (udostępniany) w tabela *

(Metoda konwersji udostępnieniu)

INDEX_BUILD_INTERNAL_RESOURCE **

Kompiluj

Główne fazy

Dane są skanowane, sortowane, scalone i wstawiony obiekt miejsce docelowe ładowanie zbiorcze operacji.

Wybierz równoczesnych użytkowników, insert, update i operacji usuwania są stosowane do gotowe indeksy i wszelkie nowe indeksy konstruowany.

(Metoda konwersji udostępnieniu)

INDEX_BUILD_INTERNAL_RESOURCE **

Końcowe

Bardzo krótkie fazy

Wszystkie transakcje nieprzydzielonych aktualizacji należy wykonać przed uruchomieniem tej fazy.Zależnie od nabyta blokada, odczytu wszystkich nowego użytkownika lub transakcje zapisu są bblokadaed przez bardzo krótki okres aż do zakończenia tej fazy.

Metadane systemu jest aktualizowany, aby zastąpić źródło z miejsce docelowe.

Źródło zostanie usunięte, jeśli jest wymagane.Na przykład po odbudowy lub usuwaniem indeks klastrowany.

INDEX_BUILD_INTERNAL_RESOURCE **

S (udostępniany) w tabela tworzenia indeks nieklastrowany. *

SCH-M (modyfikacja schematu) Jeśli dowolne źródło struktury (indeks lub tabela) jest dropped.*

* Operacji indeks będzie czekać na wszelkie transakcje aktualizacji nieprzydzielonych móc Pobieranie blokada s lub SCH M blokadę tabela.

** zasób blokada INDEX_BUILD_INTERNAL_RESOURCE uniemożliwia wykonanie równoczesne operacje DDL źródło i istniejące struktury w trakcie operacji indeksu.Na przykład ta Blokada zapobiega równoczesnych Odbuduj dwa indeksy w tej samej tabela.Chociaż ta blokada zasób jest skojarzony z blokady Sch-M, nie zapobiega instrukcje operowania danych.

W poprzedniej tabela przedstawiono pojedynczej blokada współużytkowane (S) nabyte podczas fazy budowania operację indeks w trybie online, która obejmuje jeden indeks.Kiedy indeksy klastrowane i nieklastrowany są budowane lub przebudowanych operacji jeden indeks online (na przykład podczas tworzenia indeks klastrowany początkowej dla tabela, która zawiera jeden lub więcej zbudowania indeksów nie klastrowanych) dwóch krótkoterminowych blokad udostępnione (S) są nabyte następuje długoterminowej blokady jest na etapie kompilacji.Jeden s jest blokada najpierw do utworzenia indeks klastrowany i po zakończeniu tworzenia indeks klastrowany, drugi krótkoterminowych s jest blokada tworzenia zbudowania indeksów.Po utworzeniu zbudowania indeksów s blokada jest obniżyć blokada jest aż do ostatniej fazy operacji indeks w trybie online.

Cel działań struktury

W poniższej tabela przedstawiono czynności, które obejmują struktury miejsce docelowe podczas każdej fazy działania indeksu i odpowiednich strategii blokowania.

Faza

Cel działania

Blokady docelowej

Przygotowanie

Tworzony jest nowy indeks i zestaw tylko do zapisu.

(Metoda konwersji udostępnieniu)

Kompiluj

Są wstawiane dane ze źródło.

Modyfikacje użytkownika (wstawia, aktualizacje, usuwa) stosowane do źródło są stosowane.

To działanie jest przezroczyste dla użytkownika.

(Metoda konwersji udostępnieniu)

Końcowe

Metadane indeksu jest aktualizowany.

Indeks jest zestaw do odczytu i zapisu stanu.

S (wspólne)

lub

SCH-M (modyfikacja schematu)

Obiekt miejsce docelowe nie jest dostęp do instrukcji SELECT, wydane przez użytkownika, aż do zakończenia operacji indeksu.

Po zakończeniu przygotowania i końcowej fazie plany kwerendy i aktualizacji, które są przechowywane w pamięć podręczna procedury są unieważniane.Następne kwerendy będzie używać nowego indeksu.

Istnienia kursor zadeklarowane w tabela, biorących udział w operacji online indeksu jest ograniczona przez fazy indeks w trybie online.Kursory aktualizacji są unieważniane na każdym etapie.Kursory tylko do odczytu są unieważniane po ostatniej fazy.