Guidelines for Performing Online Index Operations
Podczas wykonywania operacji indeksu online mają zastosowanie następujące wskazówki:
Stosowanie indeksów klastrowanych musi zostać utworzony, przebudowany lub usunięty podczas trybu offline tabela źródłowa zawiera typy danych dużych obiektów (LOB): image, ntext, text, varchar(max), nvarchar(max), varbinary(max), a xml.
Nieunikatowy ponownego zbudowania indeksów nie klastrowanych mogą być tworzone online, gdy tabela zawiera typy dane LOB, ale żadna z tych kolumn są używane w definicji indeksu, klucz lub nonkey kolumn (włączone).Ponownego zbudowania indeksów nie klastrowanych zdefiniowane przy użyciu kolumn typu dane LOB musi zostać utworzony lub ponownie w trybie offline.
Indeksy w lokalnych tabelach tymczasowych nie może być utworzony, przebudowany lub odrzucone w trybie online.Ograniczenie to nie ma zastosowania do indeksów sporządzanych na tabelach tymczasowych globalne.
Uwaga
Są dostępne tylko w operacji indeksu online SQL Server Wersje Enterprise Developer i oceny.
W poniższej tabela przedstawiono operacji indeksu, które mogą być wykonywane w trybie online i indeksów, które są wykluczone z tych operacji w trybie online.Włącza się również dodatkowe ograniczenia.
Operacja online indeksu |
Wykluczone indeksów |
Inne ograniczenia |
---|---|---|
ODBUDOWYWANIE INDEKSU ZMIANY |
Wyłączony indeks klastrowany lub wyłączyć widok indeksowany Indeks XML Indeks w lokalnej tabela tymczasowej |
Określanie słowo kluczowe ALL może spowodować, że operacja się nie powiedzie się, gdy tabela zawiera indeks wykluczone. Zastosować dodatkowe ograniczenia dotyczące Odbudowa indeksów wyłączone.Aby uzyskać więcej informacji zobaczGuidelines for Disabling Indexes and Constraints. |
TWORZENIE INDEKSU |
Indeks XML Początkowe unikatowego indeks klastrowany w widoku Indeks w lokalnej tabela tymczasowej |
|
TWORZENIE INDEKSU Z DROP_EXISTING |
Wyłączony indeks klastrowany lub wyłączyć widok indeksowany Indeks w lokalnej tabela tymczasowej Indeks XML |
|
USUWANIE INDEKSU |
wyłączony indeks Indeks XML Indeks nieklastrowany Indeks w lokalnej tabela tymczasowej |
Nie można określić wiele indeksów w obrębie pojedynczej instrukcja. |
ALTER tabela ADD CONSTRAINT (klucz podstawowy lub UNIQUE) |
Indeks w lokalnej tabela tymczasowej Indeks klastrowany |
Tylko jeden subclause jest dozwolona w danej chwili.Na przykład nie można dodać i upuść klucz podstawowy lub UNIQUE ograniczeń w tej samej instrukcja ALTER tabela. |
ALTER tabela DROP CONSTRAINT (klucz podstawowy lub UNIQUE) |
Indeks klastrowany |
|
tabela podstawowej nie może być modyfikowane, obcięta lub usunięty w czasie, gdy operacja online indeksu jest w toku.
Ustawienie opcji online (ON lub OFF) określona podczas tworzenia lub usunąć indeks klastrowany jest stosowane do wszystkich ponownego zbudowania indeksów nie klastrowanych w musi zostać odbudowany.Na przykład, jeśli indeks klastrowany jest wbudowana w trybie online za pomocą CREATE INDEX WITH DROP_EXISTING, w trybie ONLINE = ON, wszystkie skojarzone ponownego zbudowania indeksów nie klastrowanych są utworzony online również.
Podczas tworzenia lub odbudowanie indeks unikatowy w trybie online, konstruktora indeksu i transakcji równoczesnych użytkowników próby wstawienia tego samego klucz, w związku z tym naruszania unikatowości.Jeśli wiersz wprowadzone przez użytkownika zostanie włożony nowy indeks (miejsce docelowe) przed oryginalny wiersz z urządzenie źródłowe tabela jest przenoszony do nowego indeksu, operacja online indeksu nie powiedzie się.
Chociaż nie jest popularny, operacja online indeksu może spowodować zakleszczenie, gdy współdziała z aktualizacji bazy danych z powodu czynności użytkownika bądź aplikację.W rzadkich przypadkach SQL Server Database Engine powoduje zaznaczenie aktywności użytkownika bądź aplikację jako ofiara zakleszczenie.
Możesz wykonać operacje DDL równoczesnych online indeksu w tej samej tabela lub wyświetlić tylko podczas tworzenia wielu nowych ponownego zbudowania indeksów nie klastrowanych, lub zmiana ponownego zbudowania indeksów nie klastrowanych.Wszystkie inne operacje online indeksu wykonywane w tym samym czasie zakończyć się niepowodzeniem.Na przykład można utworzyć nowy indeks w trybie online podczas przebudowywanie istniejący indeks online dla tej samej tabela.
Zagadnienia dotyczące miejsca dysku
Ogólnie rzecz biorąc wymagania dotyczące miejsca na dysku są takie same dla operacji indeksu online i offline.Wyjątek to dodatkowe miejsce na dysku wymaganej przez indeks tymczasowe mapowania.Ten tymczasowy indeks jest używany w operacjach indeksu online, tworzyć, odbudować lub usunąć indeks klastrowany.Usunięcie indeks klastrowany online wymaga tyle miejsca, jak tworzenie indeks klastrowany online.Aby uzyskać więcej informacji zobaczDisk Space Requirements for Index DDL Operations.
Zagadnienia wydajności
Mimo że operacji indeksu online pozwala działań aktualizacji równoczesnych użytkowników, operacji indeksu będzie trwało dłużej, jeśli działanie aktualizacji jest bardzo duży.Zazwyczaj jest wolniejszy niż operacji równoważne indeksu trybu offline, niezależnie od poziom działanie aktualizacji równoczesnych operacji online indeksu.
Ponieważ struktur źródłowej i miejsce docelowe są obsługiwane podczas operacji online indeksu, zużycie zasób do wstawiania, aktualizować i usuwać transakcje wzrasta, potencjalnie do dwukrotnie.Może to spowodować zmniejszenie wydajności i większe zużycie zasób, szczególnie czas CPU, podczas operacji indeksu.Rejestrowane są całkowicie operacji online indeksu.
Mimo że firma Microsoft zaleca operacji w trybie online, należy ocenić na środowisko i określone wymagania.Może to być optymalnej, aby uruchomić operacji indeksu w trybie offline.W ten sposób użytkownicy mają ograniczony dostęp do danych podczas operacji, ale operacja zakończy się szybciej i wykorzystująca mniejszą ilość zasobów.
Na komputerach wieloprocesorowych, na których jest uruchomiony SQL Server Flaga, instrukcja indeksu może używać więcej procesorów do skanowania i sortowania operacje związane z instrukcja indeks tak samo, jak wykonać inne kwerendy. Za pomocą opcji indeksowania MAXDOP można kontrolować liczbę procesorów przeznaczonym do pracy online indeksu.W ten sposób można równoważyć zasobów, które są używane przez indeks z tymi jednocześnie działających użytkowników.Aby uzyskać więcej informacji zobaczKonfigurowanie równoległa operacje indeksu.
Ponieważ blokada S blokady lub SCH-M jest używana w ostatniej fazy operacji indeksu, należy zachować ostrożność podczas wykonywania operacji online indeksu wewnątrz Transakcja jawna użytkownika, takie jak blok instrukcji BEGIN zatwierdzanie TRANSACTION....W ten sposób powoduje, że blokada być zatrzymane do czasu zakończenia transakcji, w związku z tym utrudnić współbieżność użytkownika.
Uwagi dotyczące dziennik transakcji
Działania indeksu dużej skali, wykonywane w trybie offline lub online, można wygenerować obciążeń dużych danych, może spowodować, że dziennik transakcji szybko wypełnić.Aby upewnić się, że operacja indeksu może zostać przywrócona, transakcji dziennika nie może być obcięta, dopóki nie zostanie zakończona operacja indeksu; jednak w dzienniku zapasowe mogą być podczas operacji indeksu.W związku z tym dziennik transakcji musi być wystarczająca ilość miejsca do przechowywania transakcji operacji indeksu i wszystkie transakcje równoczesnych użytkowników przez cały czas trwania operacji indeksu.Aby uzyskać więcej informacji zobaczTransaction Log Disk Space for Index Operations.
See Also