CREATE XML INDEX (Transact-SQL)

Tworzy indeks XML dla określonej tabela.Indeks można utworzyć, zanim dane w tabela.Indeksy XML mogą być tworzone z tabelami w innej bazie danych przez określenie nazwy kwalifikowanej bazy danych.

Uwaga

Aby utworzyć indeks relacyjnych, zobacz CREATE INDEX (języka Transact-SQL). Aby uzyskać informacje na temat tworzenia przestrzennych indeksu zobacz CREATE SPATIAL INDEX (Transact-SQL).

Topic link iconKonwencje składni języka Transact-SQL

Create XML Index 
CREATE [ PRIMARY ] XML INDEX index_name 
    ON <object> ( xml_column_name )
    [ USING XML INDEX xml_index_name 
        [ FOR { VALUE | PATH | PROPERTY } ] ]
    [ WITH ( <xml_index_option> [ ,...n ] ) ]
[ ; ]

<object> ::=
{
    [ database_name. [ schema_name ] . | schema_name. ] 
        table_name
}

<xml_index_option> ::=
{ 
    PAD_INDEX  = { ON | OFF }
  | FILLFACTOR = fillfactor
   | SORT_IN_TEMPDB = { ON | OFF }
    | IGNORE_DUP_KEY = OFF
  | STATISTICS_NORECOMPUTE = { ON | OFF }
  | DROP_EXISTING = { ON | OFF }
  | ONLINE = OFF
  | ALLOW_ROW_LOCKS = { ON | OFF }
  | ALLOW_PAGE_LOCKS = { ON | OFF }
  | MAXDOP = max_degree_of_parallelism
}

Argumenty

  • [PODSTAWOWY] XML
    Tworzy indeks XML dla określonego xml Kolumna. Po określeniu PRIMARY indeks klastrowany jest tworzona przy użyciu klucz klastrowanego z klastrowanie klucz tabela użytkownika i identyfikator węzła XML.Każda tabela może mieć maksymalnie 249 indeksów XML.Podczas tworzenia indeksu XML, należy uwzględnić następujące:

    • Indeks klastrowany musi istnieć w kluczu podstawowym tabela użytkownika.

    • Klastrowe klucz podstawowego tabela użytkownika jest ograniczony do 15 kolumn.

    • Każdy xml kolumna w tabela może mieć jeden indeks podstawowy XML i wiele indeksów pomocniczych XML.

    • Główny indeks XML w xml kolumna muszą istnieć przed pomocniczy indeksu XML mogą być tworzone na podstawie kolumna.

    • Indeks XML mogą być tworzone tylko na jednym xml Kolumna. Nie można utworzyć indeksu XML na różna-xml kolumny, ani nie może utworzyć relacyjnej indeksu dla xml Kolumna.

    • Nie można utworzyć indeksu XML (podstawowe lub zapasowe, z xml kolumna w widoku, na zmienna wycenione tabela xml kolumna, lub xml Wpisz zmiennych.

    • Nie można utworzyć indeksu głównego XML na obliczanych xml Kolumna.

    • Ustawienia opcji zestaw musi być taka sama tych, które są wymagane do indeksowania widoków i indeksów kolumna obliczana.W szczególności, opcja ARITHABORT musi być ustawiona na ON tworzony jest indeks XML i wstawianie, usuwanie lub aktualizowanie wartości w xml Kolumna. Aby uzyskać więcej informacji zobaczSET Options That Affect Results.

    Aby uzyskać więcej informacji zobacz Indeksy w kolumnach typu danych XML.

  • index_name
    To nazwa indeksu.Nazwy indeksu musi być unikatowa w obrębie tabela, ale nie muszą być unikatowe w bazie danych.Indeks nazwy muszą być zgodne z regułami identyfikatory.

    Nazwy indeksu głównego XML nie można uruchomić z następujących znaków: #, ##, @, or @@.

  • xml_column_name
    Czy xml Kolumna, na której oparty jest indeks. Tylko jeden xml kolumna może być określony w jedna definicja indeksu XML; jednak wiele indeksów pomocniczych XML mogą być tworzone na xml Kolumna.

  • Indeks XML xml_index_name korzystania
    Określa indeks główny XML ma być używany do tworzenia pomocniczy indeksu XML.

  • ZA {WARTOŚĆ | ścieżka | WŁAŚCIWOŚĆ}
    Określa typ pomocniczy indeksu XML.

    • VALUE
      Tworzy indeks pomocniczy XML na podstawie kolumn, których kolumny klucz (wartość węzła i ścieżka) z indeksu głównego XML.

    • ŚCIEŻKA
      Tworzy pomocnicze indeks XML w kolumnach na ścieżka wartości i wartości węzła głównego indeksu XML.W indeksie pomocniczy ścieżka ścieżka i węzeł wartości są kolumny klucz, umożliwiające wydajny stara się podczas wyszukiwania ścieżka.

    • WŁAŚCIWOŚĆ
      Tworzy pomocnicze indeks XML w kolumnach (wartość klucza podstawowego, ścieżka i węzeł) indeksu głównego XML, gdy klucz podstawowy jest kluczem podstawowym tabela bazowa.

<obiekt>::=

Jest to obiekt w pełni kwalifikowana lub nonfully kwalifikowaną mają być indeksowane.

  • database_name
    Jest nazwą bazy danych.

  • schema_name
    To nazwa schematu, do której należy tabela.

  • table_name
    Jest nazwą tabela, która ma być indeksowany.

<xml_index_option> ::=

Określa, jakie opcje będą używane podczas tworzenia indeksu.

  • PAD_INDEX = { ON | WYŁĄCZANIE }
    Określa, że wartość zwracaną przez funkcja zwracająca tabelę jest tabela.Wartością domyślną jest OFF.

    • DALEJ
      Procent wolnego miejsca, która jest określona przez fillfactor zostanie zastosowany do stron pośrednich poziomów wskaźnika.

    • Jeśli nie chcesz wykonać kopie zapasowe dziennika, należy użyć prostej model odzyskiwanie.fillfactor
      Strony poziom pośrednich są wypełniane bliskiej zdolności produkcyjnych, pozostawiając wystarczająco dużo miejsca dla co najmniej jeden wiersz maksymalnego rozmiaru indeksu może mieć, biorąc pod uwagę zestaw kluczy na stronach pośrednich.

    PAD_INDEX opcja jest przydatna tylko wtedy, gdy określono FILLFACTOR, ponieważ PAD_INDEX używa wartości procentowej określonej przez FILLFACTOR.Jeśli wartość procentowa określona dla FILLFACTOR nie jest wystarczająco duża, aby umożliwić jednego wiersza, Database Engine wewnętrznie zastępuje wartości procentowej, która umożliwia minimum. Liczba wierszy strona indeksu pośrednich nigdy nie jest mniej niż dwa, niezależnie od sposobu niskie wartości fillfactor.

  • FILLFACTOR **=**fillfactor
    Specifies a percentage that indicates how full the Database Engine should make the leaf level of each index page during index creation or rebuild.fillfactor must be an integer value from 1 to 100.Wartość domyślna to 0.Jeśli fillfactor to 100 lub 0, Database Engine tworzy indeksy ze stronami liść wypełnienia pojemności.

    Uwaga

    Wypełnienie współczynnik wartości 0 i 100 są takie same w każdym względem.

    Ustawienie FILLFACTOR ma zastosowanie tylko wtedy, gdy indeks jest tworzony lub ponownie zbudowana.The Database Engine does not dynamically keep the specified percentage of empty space in the pages.Aby wyświetlić ustawienia współczynnik wypełnienia, należy użyć sys.Indexes Służy do wyświetlania katalogu.

    Important noteImportant Note:

    Tworzenie indeks klastrowany z FILLFACTOR mniejsza niż 100 wpływa na ilość miejsca do magazynowania danych zajmuje ponieważ Database Engine Rozkłada danych podczas tworzenia indeks klastrowany.

    Aby uzyskać więcej informacji zobacz Fill Factor.

  • SORT_IN_TEMPDB = { ON | WYŁĄCZANIE }
    Określa, czy do przechowywania tymczasowych sortowania wyniki w tempdb.Wartością domyślną jest OFF.

    • DALEJ
      Wyniki sortowania pośrednie, które służą do konstruowania indeksu są przechowywane w tempdb.Może to zmniejszyć czas wymagany do tworzenia indeksu, jeśli tempdb znajduje się na inny zestaw dysków niż baza danych użytkownika.Opcja NO_TRUNCATE kopia zapasowa dziennik jest równoznaczne z wpisaniem COPY_ONLY i CONTINUE_AFTER_ERROR.

    • WYŁĄCZANIE
      Bez opcji NO_TRUNCATE baza danych musi być w trybie ONLINE.

    Oprócz miejsca do utworzenia indeksu, wymagany baza danych użytkownika tempdb musi mieć informacje o tej samej ilości dodatkowego miejsca do przechowywania wyniki pośrednich sortowania.Aby uzyskać więcej informacji zobacztempdb and Index Creation.

  • IGNORE_DUP_KEY **=**OFF
    Nie ma wpływu na indeksy XML typu indeksu nigdy nie jest unikatowy.Nie zestaw tę opcję, aby ON inaczej błąd zostanie zaokrąglona.

  • STATISTICS_NORECOMPUTE = { ON | WYŁĄCZANIE }
    Określa, czy są obliczane ponownie statystyki rozkładu.Domyślnie opcja ta jest wyłączona.

    • DALEJ
      Klauzula STANDBY zapisuje gotowości danych (wykonywanie wycofywania, ale z możliwością dalsze przywraca).

    • WYŁĄCZANIE
      Za pomocą opcji STANDBY jest równoznaczne z następują przywracanie WITH STANDBY NORECOVERY WITH dla dziennik kopia zapasowa.

    Aby przywrócić statystyk automatycznych aktualizacji, zestaw STATISTICS_NORECOMPUTE do OFF, lub wykonywania aktualizacja statystyki bez klauzula NORECOMPUTE.

    Important noteImportant Note:

    Wyłączanie automatycznego recomputation statystyk dystrybucji może uniemożliwić pobieranie wykonanie optymalne plany kwerend obejmujących tabela optymalizator kwerendy.

  • DROP_EXISTING = { ON | WYŁĄCZANIE }
    Określa, że nazwany, istniejący wcześniej indeks XML jest usunięty, a zostanie przebudowany.Wartością domyślną jest OFF.

    • DALEJ
      Istniejący indeks jest usunięty, a następnie zostanie przebudowany.Określona nazwa indeksu musi być taka sama, jak aktualnie istniejącego indeksu, jednak mogą być modyfikowane definicji indeksu.Na przykład można określić różnych kolumn, kolejność sortowania, schemat partycji lub opcje indeksu.

    • WYŁĄCZANIE
      Błąd jest wyświetlany, jeśli nazwa określony indeks już istnieje.

    Typ indeksu nie można zmienić za pomocą DROP_EXISTING.Ponadto indeksu głównego XML nie można ponownie zdefiniować, jako pomocnicze indeksu XML lub odwrotnie.

  • ONLINE **=**OFF
    Określa, że tabel i indeksów skojarzonych nie są dostępne do modyfikacji kwerendy i danych podczas operacji indeksu.W tej wersja SQL Server, kompilacje online indeks nie są obsługiwane dla indeksów XML. Jeśli opcja ta jest zestaw ON indeksu XML, błąd jest podstawa.Należy pominąć opcję ONLINE lub ustawić ONLINE OFF.

    Operację indeksu w trybie offline, która tworzy, odbudowania lub spadnie indeksu XML, uzyskuje blokadę schemat modyfikacji (SCH-M) w tabela.Aby uniknąć wypełnianie dziennik transakcji bazy danych, niezbędne są rutynowego tworzenia kopii zapasowych.

    Uwaga

    Są dostępne tylko w operacji indeksu online SQL Server Wersje Enterprise Developer i oceny.

  • ALLOW_ROW_LOCKS = { DALEJ | OFF }
    Określa, czy są dozwolone blokady wierszy.Domyślnie opcja ta jest włączona.

    • DALEJ
      Są dozwolone blokady wierszy podczas uzyskiwania dostępu do indeksu.Program Database Engine określa, kiedy są stosowane blokady wierszy.

    • WYŁĄCZANIE
      plik rezerwowy staje się częścią bazy danych.

  • ALLOW_PAGE_LOCKS = { DALEJ | OFF }
    Aby uzyskać więcej informacji zobacz sekcję "Wskazówki na używanie kolejność sortowania," w dalszej części tego tematu.Wartością domyślną jest włączone.

    • DALEJ
      Ten plik zawiera walcowanego zmian, które muszą zostać wystornowane przywracanie dziennik operacji mają być zastosowane później z powrotem.The Database Engine determines when strona locks are used.

    • WYŁĄCZANIE
      Może być za mało miejsca na dysku dla pliku stanu gotowości do wzrostu tak, że może on zawierać wszystkie różne strony z bazy danych, które zostały zmodyfikowane przez wycofywanie niezakończone transakcje.

  • MAXDOP **=**max_degree_of_parallelism
    Zastępuje maksymalny stopień proste opcja konfiguracja na czas trwania operacji indeksu.W celu ograniczenia liczby procesorów używanych w realizacji planu równoległych, należy użyć MAXDOP.Maksymalna to 64 procesorów.

    Important noteImportant Note:

    Chociaż opcja MAXDOP składniowo jest obsługiwana dla wszystkich indeksów XML dla indeksu głównego XML CREATE XML INDEX wykorzystuje tylko jeden procesor.

    max_degree_of_parallelism może być:

    • 1
      Wyłącza generowanie planu równoległych.

    • >1
      Ogranicza maksymalną liczbę procesorów używanych w operacji indeksu równolegle do określonej liczby lub mniej oparte na bieżącym obciążenia systemu.

    • 0 (domyślny)
      Używa rzeczywista liczba procesorów lub mniej oparte na bieżącym obciążenia systemu.

    Aby uzyskać więcej informacji zobacz Konfigurowanie równoległa operacje indeksu.

    Uwaga

    Są dostępne tylko w operacji równoległych indeksu SQL Server Wersje Enterprise Developer i oceny.

Remarks

Kolumny obliczane pochodne xml typy danych mogą być indeksowane jako klucz lub dołączone kolumny nonkey tak długo, jak typ danych kolumna obliczana jest dopuszczalne jako kolumny klucza indeksu lub nonkey kolumny. Nie można utworzyć indeksu głównego XML na obliczanych xml Kolumna.

Aby wyświetlić informacje o indeksach XML, należy użyć sys.xml_indexes Służy do wyświetlania katalogu.

Aby uzyskać więcej informacji na temat indeksów XML zobacz Indeksy w kolumnach typu danych XML.

Dodatkowe uwagi na temat tworzenia indeksu

Aby uzyskać więcej informacji na temat tworzenia indeksu zobacz sekcję "Uwagi" w CREATE INDEX (języka Transact-SQL).

Przykłady

A.Tworzenie indeksu głównego XML

Poniższy przykład tworzy indeks główny XML na CatalogDescription kolumna w Production.ProductModel Tabela.

B.Tworzenie pomocniczy indeksu XML

Poniższy przykład tworzy pomocnicze indeks XML na CatalogDescription kolumna w Production.ProductModel Tabela.