Tworzenie INDEKSU XML (Transact-SQL)
Tworzy indeks XML w określonej tabela.Zanim dane w tabela, można utworzyć indeks.Indeksy XML można utworzyć przez określenie nazwy kwalifikowanej bazy danych z tabelami w innej bazie danych.
Ostrzeżenie
Aby utworzyć indeks relacyjnych, zobacz CREATE INDEX (Transact-SQL).Aby uzyskać informacje dotyczące tworzenia indeksu przestrzennej, zobacz Utwórz indeks PRZESTRZENNY (Transact-SQL).
Składnia
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
| 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 na określonym xml kolumna.Po określeniu podstawowego indeks klastrowany jest tworzony z klastrowany klucz powstały klastrowanie klucz użytkownika tabela i identyfikator węzła XML.Każda tabela może mieć maksymalnie 249 indeksów XML.Podczas tworzenia indeksu XML pod uwagę następujące informacje:indeks klastrowany musi istnieć na podstawowy klucz użytkownika tabela.
klastrowanieklucz użytkownika tabela jest ograniczona do 15 kolumn.
Każdy xml kolumna w tabela może mieć jeden indeks podstawowy XML i wiele indeksów pomocniczych XML.
Podstawowy indeksu XML na xml kolumna muszą istnieć przed pomocniczej indeksem XML mogą być tworzone na kolumna.
Indeks XML mogą być tworzone tylko na jednym xml kolumna.Nie można utworzyć indeksu XML na inne niż-xml kolumna, ani nie można utworzyć indeksu relacyjnej na xml kolumna.
Nie można utworzyć indeksu XML, podstawowe lub pomocnicze, z xml kolumna w widoku tabela-wyceniane zmiennej z xml kolumny, lub xml zmiennych typu.
Nie można utworzyć indeksu głównego XML na obliczanych xml kolumna.
Określanie ustawień opcji musi być taka sama, jak te wymagane dla widoków indeksów oraz indeksy kolumna obliczana.W szczególności, opcja ARITHABORT musi być zestaw na podczas tworzenia indeksu XML i wstawianie, usuwanie lub aktualizowanie wartości w xml kolumna.Aby uzyskać więcej informacji, zobacz Ustaw opcje, które wpływają na wyniki.
Aby uzyskać więcej informacji, zobacz Indeksy na kolumnach typu danych XML.
index_name
Jest to nazwa indeksu.Nazwy indeksów muszą być unikatowe w obrębie tabela , ale nie muszą być unikatowe w bazie danych.Nazwy indeksów muszą spełniać zasady z identyfikatorów.Podstawowy nazwy indeksu XML nie można uruchomić z następujących znaków: #, ##, @, or @@.
xml_column_name
Jest xml kolumna opiera indeksu.Tylko jeden xml kolumna można określić w jednej definicji indeksu XML; jednak wiele indeksów pomocniczych XML mogą być tworzone na xml kolumna.PRZY UŻYCIU INDEKSU XMLxml_index_name
Określa indeks podstawowy XML umożliwia tworzenie pomocniczej indeksem XML.DLA {WARTOŚĆ | ŚCIEŻKA | WŁAŚCIWOŚĆ}
Określa typ pomocniczy indeksu XML.VALUE
Tworzy pomocnicze indeks XML dla kolumn, gdzie kolumn klucz są (wartość węzła i ścieżka) z indeksu głównego XML.ŚCIEŻKA
Tworzy pomocnicze indeks XML w kolumnach oparty na wartości ścieżka i węzeł podstawowy indeksu XML.W indeksie pomocnicze ścieżki wartości ścieżka i węzeł są kolumny klucz , które zezwalają na efektywne dąży do ścieżki wyszukiwania.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 podstawowy klucz tabela bazowa.
<obiekt>:: =
Jest w pełni kwalifikowana lub nonfully kwalifikowaną obiektu mają być indeksowane.
database_name
Jest to nazwa bazy danych.schema_name
Jest to nazwa schematu, do której należy tabela .table_name
Jest nazwą tabela mają być indeksowane.
<xml_index_option> :: =
Określa opcje podczas tworzenia indeksu.
PAD_INDEX = {ON | OFF }
Określa indeks uzupełnienie.Domyślnie jest wyłączona.NA
Procent wolnego miejsca, która jest określona przez fillfactor jest stosowany do stronypoziom pośredniego-indeks.Wyłączanie lub fillfactor nie jest określony
Stronypoziom pośredniego - są wypełnione bliskiej zdolności, pozostawiając wystarczająco dużo miejsca dla co najmniej jeden wiersz maksymalny rozmiar indeksu może mieć, biorąc pod uwagę zestaw kluczy na stronach pośrednich.
Opcja PAD_INDEX jest przydatna w tylko wtedy, gdy FILLFACTOR jest określony, 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ży, aby umożliwić jeden wiersz Aparat baz danych wewnętrznie zastępuje procent, aby umożliwić minimum.Liczba wierszy na pośrednich strona indeksu nigdy nie jest mniejsza niż dwóch niezależnie od sposobu niskiej wartości z fillfactor.
FILLFACTOR **=**fillfactor
Określa wartość procentową, która wskazuje, jak pełne Aparat baz danych należy ustawić liść poziom każdej strona indeksu podczas tworzenia indeksu lub rekonstrukcji.fillfactormusi mieć wartość całkowitą od 1 do 100.Wartość domyślna to 0.Jeśli fillfactor jest 100 lub 0, Aparat baz danych tworzy indeksy z liść strony wypełniony do pojemności.Ostrzeżenie
Wartości współczynnika wypełnienia 0 i 100 są takie same pod każdym względem.
Ustawienie FILLFACTOR dotyczy tylko wtedy, gdy indeks jest tworzony lub przebudowanych.Aparat baz danych Nie dynamicznie zachować określony procent wolnego miejsca w stronach.Aby wyświetlić ustawienie współczynnik wypełnienia , użyj sys.indexes katalogu widoku.
Ważne: Tworzenie indeks klastrowany z FILLFACTOR mniej niż 100 wpływa na ilość miejsca do magazynowania danych zajmuje, ponieważ Aparat baz danych rozkłada danych podczas tworzenia indeks klastrowany.
Aby uzyskać więcej informacji, zobacz Współczynnik wypełnienia.
SORT_IN_TEMPDB = {ON | OFF }
Określa, czy do przechowywania tymczasowych Sortuj wyniki w tempdb.Domyślnie jest wyłączona.NA
Pośrednie sortowania wyniki , używany do tworzenia indeksu są przechowywane w tempdb.Może to zmniejszyć czas wymagany do utworzenia indeksu, jeśli tempdb na inny zestaw dysków baza danych użytkownika.Jednak zwiększa ilość miejsca na dysku, który jest używany podczas budowania indeksu.WYŁĄCZANIE
Pośrednie Sortuj wyniki są przechowywane w tej samej bazy danych jako indeks.
Oprócz przestrzeni wymagane w baza danych użytkownika , aby utworzyć indeks tempdb musi mieć informacje o tej samej ilości dodatkowego miejsca do przechowywania wynikipośrednich sortowania.Aby uzyskać więcej informacji, zobacz tempdb i tworzenie indeksu.
IGNORE_DUP_KEY **=**OFF
Nie ma znaczenia dla indeksów XML typ indeksu nigdy nie jest unikatowy.Należy zestaw tę opcję, aby dalej, gdyż w przeciwnym razie spowodował błąd.DROP_EXISTING = {ON | OFF }
Określa, że nazwany, istniejący wcześniej indeks XML jest odrzucone i przebudowany.Domyślnie jest wyłączona.NA
Istniejący indeks jest opuszczane, a następnie ponownie zbudowana.Określona nazwa indeksu musi być taka sama, jak aktualnie istniejący indeks; Jednakże można modyfikować definicję indeksu.Na przykład można określić różne kolumny, kolejność sortowania, schemat partycjilub opcje indeksu.WYŁĄCZANIE
Błąd jest wyświetlany, jeśli nazwa określony indeks już istnieje.
Typ indeksu nie można zmienić przy użyciu DROP_EXISTING.Ponadto indeksu głównego XML nie można ponownie zdefiniować, jako pomocniczej indeksem XML lub odwrotnie.
ONLINE **=**OFF
Określa, że tabele podstawowe i indeksy skojarzone 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 ta opcja jest zestaw na indeks XML, błąd zostanie zaokrąglona.Opcja ONLINE lub zestaw ONLINE OFF albo pominąć.Operację indeks w trybie offline, która tworzy, odbudowania lub porzuca indeksu XML nabywa modyfikacji (Sch-M) schematu blokada w tabela.Uniemożliwia to dostęp użytkownika do odpowiedniej tabela , na czas trwania operacji.
Ostrzeżenie
Operacje indeksu online są dostępne tylko w SQL Server wersji Enterprise, Developer i oceny.
ALLOW_ROW_LOCKS = { ON | OFF}
Określa, czy wiersz blokady są dozwolone.Domyślnie jest włączone.NA
Blokady wiersza są dozwolone podczas uzyskiwania dostępu do indeksu.Aparat baz danych Określa, kiedy są używane wiersza blokad.WYŁĄCZANIE
Wiersz blokady nie są używane.
ALLOW_PAGE_LOCKS = { na | OFF}
Określa, czy dozwolone są strona blokad.Domyślnie jest włączone.NA
Blokady strony są dozwolone podczas uzyskiwania dostępu do indeksu.Aparat baz danych Określa, kiedy są używane strona blokad.WYŁĄCZANIE
Strona blokady nie są używane.
MAXDOP **=**max_degree_of_parallelism
Zastępuje maksymalny stopień równoległości prostychopcjakonfiguracja na czas trwania operacji indeksu. MAXDOP służą do ograniczania liczby procesorów używanych w realizacji planu równoległego.Maksymalna to 64 procesorów.Ważne: Chociaż opcja MAXDOP składniowo jest obsługiwana dla wszystkich indeksów XML dla podstawowego indeksu XML CREATE XML INDEX używa tylko jeden procesor.
max_degree_of_parallelismmoże być:
1
Pomija generowanie planu równoległego.>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ślnie)
Używa rzeczywista liczba procesorów lub mniej oparte na bieżącym obciążenia systemu.
Aby uzyskać więcej informacji, zobacz Konfigurowanie operacji równoległych indeksu.
Ostrzeżenie
Indeksu równoległa operacje są dostępne tylko w SQL Server wersji Enterprise, Developer i oceny.
Uwagi
Obliczone kolumn pochodzących z xml typy danych mogą być indeksowane jako klucz lub dołączone nonkey kolumna tak długo, jak typ danych kolumna obliczanej jest dopuszczalne jako indeks klucz kolumna lub kolumnanonkey.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 katalogu widoku.
Aby uzyskać więcej informacji na temat indeksów XML, zobacz Indeksy na kolumnach typu danych XML.
Dodatkowe uwagi dotyczące tworzenia indeksu
Aby uzyskać więcej informacji na temat tworzenia indeksu patrz "Uwagi" sekcja w CREATE INDEX (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.
USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT * FROM sys.indexes
WHERE name = N'PXML_ProductModel_CatalogDescription')
DROP INDEX PXML_ProductModel_CatalogDescription
ON Production.ProductModel;
GO
CREATE PRIMARY XML INDEX PXML_ProductModel_CatalogDescription
ON Production.ProductModel (CatalogDescription);
GO
B.Tworzenie pomocniczej indeksem XML
Poniższy przykład tworzy pomocnicze indeksu XML na CatalogDescription kolumna w Production.ProductModel tabela.
USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.indexes
WHERE name = N'IXML_ProductModel_CatalogDescription_Path')
DROP INDEX IXML_ProductModel_CatalogDescription_Path
ON Production.ProductModel;
GO
CREATE XML INDEX IXML_ProductModel_CatalogDescription_Path
ON Production.ProductModel (CatalogDescription)
USING XML INDEX PXML_ProductModel_CatalogDescription FOR PATH ;
GO
Zobacz także