Udostępnij za pośrednictwem


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.