Aracılığıyla paylaş


Birincil xml dizini

Tüm etiketleri, değerleri ve yolları bir xml sütun xml örnekleri içinde birincil xml dizin dizinler.To create a primary XML index, the table in which the XML column occurs must have a clustered index on the primary key of the table.SQL Server uses this primary key to correlate rows in the primary XML index with rows in the table that contains the XML column.

Birincil xml dizin bir shredded ve kalıcı xml BLOB'lar gösterimidir xml veri türü sütun.Her xml ikili büyük nesne (blob) sütun, dizin verilerinin birden çok satır oluşturur.Dizin içindeki satır sayısını xml ikili büyük nesne içinde yaklaşık düğümlerinin sayısına eşittir.Tam xml örnek sorgu aldığında SQL Server sağlar örnekten xml sütun.xml örnekleri sorgulara birincil xml dizin kullanın ve skaler değerler veya xml alt ağaçlar dizinini kullanarak dönebilirsiniz.

Her satır, aşağıdaki düğüm bilgileri depolar:

  • Bir öðe ya da öznitelik adı gibi etiket adı.

  • Düğüm değeri.

  • Bir öğe düğümü, öznitelik düğümü veya metin düğümü gibi düğüm türü.

  • Bir iç düğüm tanımlayıcı tarafından temsil edilen belge sipariş bilgileri.

  • xml ağacının kökünü her düğümden yolu.Bu sütun için sorgu ifadelerde yol aranır.

  • Birincil anahtar temel tablo.Temel tablonun birincil anahtarı geri birleştirmek ile temel tablo için birincil xml dizin içinde çoğaltılır ve temel tablonun birincil anahtar sütun sayısı 15'e sınırlıdır.

Bu düğüm bilgileri değerlendirmek ve xml sonuçlar elde etmek için belirli bir sorgu oluşturmak için kullanılır.En iyi duruma getirme amacıyla etiket adı ve düğüm türü bilgileri tamsayı değerler olarak kodlanır ve yol sütun aynı kodlamayı kullanır.Ayrıca, yollar yol soneki bilindiğinde eşleşen yollar izin vermek için ters sırada saklanır.Örneğin:

  • //ContactRecord/PhoneNumber Burada yalnızca son iki adımı olduğu bilinen

OR

  • /Book/*/TitleBurada joker karakteri (*) ifade. ortasında belirtilen

Birincil xml dizin ilgili sorguları için sorgu işlemci kullanan XML veri türü yöntemleri ve skaler değerler veya xml alt ağaçlar birincil dizinden kendisini verir.(Bu dizin xml yeniden oluşturmak için gerekli tüm bilgileri depolayan örnek.)

For example, the following query returns summary information stored in the CatalogDescriptionxml type column in the ProductModel table.Sorgunun döndürdüğü <Summary> de yalnızca ürün katalog açıklaması modeller için bilgi depolayan <Features> açıklaması.

WITH XMLNAMESPACES ('https://schemas.microsoft.com/sqlserver/2008/07/adventure-works2008R2/ProductModelDescription' AS "PD")

SELECT CatalogDescription.query('
  /PD:ProductDescription/PD:Summary
') as Result
FROM Production.ProductModel
WHERE CatalogDescription.exist ('/PD:ProductDescription/PD:Features') = 1

İle ilgili her xml ikili büyük nesne örneği Base shredding yerine birincil xml dizin, tablo, dizin içindeki her xml büyük ikili nesne için karşılık gelen satırları belirtilen ifade için sırayla aranır exist() yöntem.Yolda yol bulunursa, sütun dizin içindeki <Summary> öğe ile birlikte kendi alt ağaçlar birincil xml dizin alınan ve sonucu olarak bir xml ikili büyük nesne dönüştürülen query() yöntem.

Birincil xml dizin tam bir xml örnek alınırken kullanılmadığını unutmayın.Aşağıdaki sorgu örnek alır tablo için belirli bir ürün modeline üretim yönergeleri açıklar tüm xml örnek.

USE AdventureWorks2008R2;

SELECT Instructions
FROM Production.ProductModel 
WHERE ProductModelID=7;

Ayrıca bkz.

Kavramlar