Aracılığıyla paylaş


Kayma dizin oluşturma genel bakış

SQL Server 2008 ve sonraki sürümlerinde uzamsal veri desteği.Bu bir düzlemsel uzamsal veri türü için destek içerir geometry, geometrik veri destekler — noktalar, çizgiler ve çokgenler — içinde Euclidean bir koordinat sistemi.The geography data type represents geographic objects on an area on the Earth's surface, such as a spread of land.Bir coğrafi konum sütun kayma dizin için bir iki boyutlu, non-Euclidean alan coğrafi veriler eşleştirir.

Kayma dizin uzamsal veri içeren bir tablo sütunda tanımlanır (bir kayma sütun).Her kayma dizin sınırlı bir alana başvuruda bulunur.Örneğin, bir dizin için bir geometry sütun başvurduğu kullanıcı tarafından belirtilen dikdörtgen bir alan uçak.

Dizinli alanı kılavuz hiyerarşisi içinde decomposing

De SQL Server 2008, kayma dizinler yerleşik b-ağaçları kullanarak dizinleri b doğrusal sırayla 2 boyutlu uzamsal veri temsil ettiğini anlamına gelir-ağaçları.Bu nedenle, kayma bir dizin veri okuma önce SQL Server 2008 uygulayan bir hiyerarşik Tekdüzen decomposition alanı.Dizin oluşturma işlemine çözer dört düzey boşluğa Kılavuz hiyerarşi.Bu düzeyleri olarak başvuruda Düzey 1 (üst düzey), Düzey 2, Düzey 3, ve Düzey 4.

İleri düzeyde eksiksiz bir kılavuz her üst düzey hücre içerecek şekilde daha fazla birbirini izleyen her düzey düzey üstündeki çözer.Üzerinde bir verilen düzey, ızgara hücreleri (örneğin, 4 x 4 veya 8 x 8) her iki eksen boyunca aynı sayıda olması, ve hücreler tüm bir boyutu.

Decomposition her sağ üst hücresi için aşağıdaki resimde gösterilmektedir düzey içine bir 4 x 4 kılavuz ızgara hiyerarşi.Gerçekte, tüm hücreleri bu şekilde decomposed.Bu nedenle, örneğin, dört Düzey 4 x 4 ızgara alan decomposing aslında toplam 65.536 düzeyi dört hücre üretir.

Yinelemeli döşemenin dört düzeyi

Not

Uygulama verilerini kullanan ölçü biriminden kayma dizin için alanı decomposition bağımsızdır.

Hücre kılavuz hiyerarşi, Hilbert boşluk doldurma eğrinin bir Varyasyon kullanarak doğrusal bir şekilde numaralandırılır.Resimde amacıyla, ancak, bu tartışma row-wise, aslında Hilbert eğrisi tarafından üretilen numaralandırma yerine numaralandırma basit kullanır.Aşağıdaki çizimde, binalar ve streets temsil eden satırlar temsil eden birkaç çokgenler zaten bir 4 x 4, düzey 1 ızgaraya yerleştirilmiş.Düzey 1 hücreleri 1 ile 16, sol üst hücre ile başlayarak numaralandırılır.

4x4 düzey 1 kılavuzuna yerleştirilen çokgenler ve çizgiler.

Kılavuz yoğunluk

Hücre kılavuz eksenleri boyunca belirler, yoğunluk: büyük sayı, daha yoğun kılavuz.Örneğin, (gri 64 hücreler üretir) 8 x 8 kılavuz (, 16 hücreleri üreten) bir 4 x 4 kılavuz daha yoğun.Kılavuz yoğunluk düzey başına ayrı ayrı tanımlanır.

The CREATE SPATIAL INDEX Transact-SQL statement supports a GRIDS clause that enables you to specify different grid densities at different levels.Belirli bir düzey kılavuz yoğunluğu, aşağıdaki anahtar sözcükler kullanılarak belirtilir:

Anahtar Sözcük

Kılavuz yapılandırma

Hücre sayısı

DÜŞÜK

4 X 4

16

ORTA

8 X 8

64

YÜKSEK

16 X 16

256

Tüm düzeylerdeki Orta varsayılandır.

Varsayılan Kılavuz yoğunluğunu belirterek decomposition işlemini denetleyebilir.Örneğin, farklı düzeylerdeki farklı ızgara yoğunluğunu dizinli alan ve nesneleri kayma sütun boyutunu temel alan bir dizin ince ayar yapma için yararlı olabilir.

Not

Kayma dizin kılavuz yoğunluğunu görünür level_1_grid, level_2_grid, level_3_grid, ve level_4_grid sütunlarından sys.spatial_index_tessellations Katalog görünümü.

Mozaik

Dizinlenmiş bir alan bir kılavuz hiyerarşi decomposition sonra kayma sütun kayma dizin verilerini okur satır satır.Sonra kayma nesnesi için veri okuma (veya örnek), kayma dizin gerçekleştiren bir Mozaik işlem bu nesne için.The tessellation processfits the object into the grid hierarchy by associating the object with a set of grid cells that it touches (touched cells).Kılavuz hiyerarşi düzeyine 1 başlayarak, Mozaik işlem devam eder etki derecesini elde ilk düzey arasında.Büyük olasılıkla, tüm dört düzeyde, işlemin devam bir düzeyde bir saat.

Mozaik işlem çıkış bir küme değinilmiştir hücrelerin kayma dizin nesnesi için kaydedilir.Kaydedilen bu hücrelere başvuran tarafından kayma dizin nesnesi göreli olarak diğer nesneleri kayma alanı içinde bulabilirsiniz sütun , ayrıca dizinde saklanır.

Mozaik kuralları

Bir nesne için kaydedilen değinilmiştir hücre sayısını sınırlamak, Mozaik işlemi birkaç Mozaik kuralları uygulanır.Bu kurallar, Mozaik işlem derinliğini ve değinilmiştir hücrelerin hangi dizinde kaydedilir belirler.

Bu kurallar şunlardır:

  • Kapak kuralı

    Nesneyi tamamen hücre kapsıyorsa, bu hücre söylenir kaplı nesne tarafından.Kapsanan hücre sayılır ve tessellated.Bu kural, kılavuz hiyerarşi tüm düzeylerde uygulanır.Kapak kuralı Mozaik işlemini basitleştirir ve veri miktarını azaltır, kayma dizin kayıtları.

  • Nesne başına hücreleri kuralı

    Bu kural zorlayan nesne başına hücreleri sınırlamak, her nesne için dışında düzey 1 sayılması hücrelerin üst sınırını belirler.Daha düşük düzeyde nesne başına hücreleri kuralı kaydedilebilen nesne hakkında bilgi miktarını kontrol eder.

  • Acınızı hücre kuralı

    Acınızı hücre kuralı yalnızca nesne için tessellated en alttaki yalnızca hücreleri tarafından en iyi yaklaşık olarak bir nesne oluşturur.Ana hücreler için nesne başına hücreleri Say katkıda bulunan ve dizin içinde kaydedilmez.

Her bir kılavuz düzey sürekli olarak uygulanır bu Mozaik kurallardır.Bu bölümün geri kalanında daha ayrıntılı Mozaik kuralları açıklar.

Kural kapsayan

Bir nesneyi tamamen hücre kapsıyorsa, bu hücre söylenir kaplı nesne tarafından.Örneğin, aşağıdaki çizimde, ikinci düzey hücrelerinden, 15.11, tamamen bir octagon Orta kısmı ele alınmaktadır.

Kapsama optimizasyonu

Kapsanan hücre sayılan ve dizinde kaydedilir ve hücre daha fazla tessellated.

Nesne başına hücreleri kuralı

kapsam , Her nesnenin bir Mozaik öncelikle on bağlıdır nesne başına hücreleri sınırı kayma dizin.En çok bu sınırı tanımlar hücrelerin her nesne o Mozaik sayabilirsiniz.Ancak, bu sınırı aşan mümkündür için nesne başına hücreleri kuralı düzey 1 zorlanmaz unutmayın.Düzey 1 indiğinde saymak veya aşıyor, başka hiçbir Mozaik alt düzeyde oluşur hücreleri-her nesne için sınırlar.

Bu sayı nesne başına hücreleri sınırından daha az olduğu sürece, Mozaik işlem devam eder.En küçük numara değinilmiştir içeren hücreyi (örneğin, hücrede 15.6 yukarıdaki resimde) işlemini başlatmadan onu saymak ya da onu tessellate değerlendirmek için her hücre sınar.Bir hücre tessellating nesne başına hücreleri sınırı aşacak, hücre sayılan ve tessellated değil.Aksi durumda, hücre tessellated ve nesnesinin Kullanıla alt düzey hücreler dikkate alınır.Mozaik işlemi bu şekilde, breadth-wise, düzey arasında devam eder.Bu işlem alt düzey ızgaralar tessellated hücre için yinelenen yinelemeli olarak sınırına ulaşıldığında veya yok saymak için daha fazla hücre kadar.

Örneğin, yukarıdaki resimde tamamen içine sığan bir octagon gösterir göz önünde hücre düzey 1 kılavuzunun 15.Resimde, hücre 15, dokuz düzey 2 hücrelere octagon dissecting tessellated.Bu resimde, nesne başına hücreleri sınırı 9 ya da daha fazla olduğunu varsayar.Nesne başına hücreleri sınır 8 veya daha az olsaydı, ancak hücre 15 tessellated ve yalnızca o hücre 15 nesne için sayılacak.

Varsayılan olarak, çoğu kayma dizinler için tatmin edici bir denge arasında boşluk ve duyarlılık sağlayan nesne başına 16 hücre nesne başına hücreleri sınırlıdır.However, the CREATE SPATIAL INDEX Transact-SQL statement supports a CELLS_PER_OBJECT**=**n clause that enables you to specify a cells-per-object limit between 1 and 8192, inclusive.

Not

The cells_per_object setting of a spatial index is visible in the sys.spatial_index_tessellations catalog view.

Acınızı hücre kuralı

Acınızı hücre kuralı yararlanan olgu her alt düzey hücreyi üstündeki hücrenin ait olduğu: Düzey 3 hücre için bir düzey-4 hücre ait, Düzey 3 hücrenin ait olduğu bir düzey-2 hücre ve bir düzey 1 hücreye bir düzey-2 hücre ait.Örneğin, hücre 1.1.1.1 ait bir nesne hücre 1.1.1 1.1 hücre ve hücre 1 için de aittir.Bu tür hücre sıradüzen ilişkileri hakkında bilgi sorgu işlemci yerleşik olarak bulunur.Bu nedenle, düzey Acınızı hücre en aza dizini depolamak için gereken bilgileri dizinde kaydedilmesi gerekir.

Aşağıdaki çizimde, görece küçük bir elmas şeklinde Çokgen tessellated.Küçük bu nesne için ulaşıldığında, varsayılan nesne başına hücreleri sınırına 16, dizini kullanır.Bu nedenle, Mozaik Düzey 4 kapalı doğru devam eder.Çokgen ise aşağıdaki Düzey-1'den Düzey 3 hücre bulunur: 4, 4.4 ve 4.4.10 ve 4.4.14.Ancak, Acınızı hücre kuralı kullanarak, Mozaik on iki Düzey-4 hücreleri sayar: 4.4.10.13-15 ve 4.4.14.1-3, 4.4.14.5-7 ve 4.4.14.9-11.

En derin hücre optimizasyonu

Mozaik düzenleri

Kısmen açık bir kayma dizin davranışını bağlıdır, Mozaik düzeni.Mozaik düzeni veri türü olan belirli.sql Server 2008'de kayma dizinler iki Mozaik düzenleri destekler:

  • Geometrisi kılavuz Mozaik, düzeni olduğu geometry veri türü.

  • Coğrafi konum kılavuz Mozaik, sütun için geçerli olduğu Coğrafya veri türü.

Not

The tessellation_scheme setting of a spatial index is visible in the sys.spatial_index_tessellations catalog view.

Geometrisi kılavuz Mozaik düzeni

Geometrisi kılavuz Mozaik olan varsayılan Mozaik düzeninde geometry veri türü ve SQL Server 2008, bunu yalnızca bu tür Mozaik düzeni.Bu bölümde kayma dizinleri ile çalışmak için ilgili geometriyi kılavuz Mozaik yönlerini ele almaktadır: desteklenen yöntemler ve sınırlayıcı kutuları.

Not

You can explicitly specify this tessellation scheme by using the USING GEOMETRY_GRID clause of the CREATE SPATIAL INDEX Transact-SQL statement.

Desteklenen geometrisi yöntemleri

Kayma dizin nesnelerine filtre olarak işlev gören tarafından bir kayma sütun için küme yönelimli yöntemlerini uygulama maliyetini azaltmak için hazırlanmıştır.The geometry data type provides built-in methods for constructing geometry instances that describe geometric objects and for working with those instances.Belirli koşullar altında kayma dizinler küme odaklı geometrisi yöntemleri gibi destek numarası STIntersects() ve STTouches().

Kayma dizinler tarafından sağlanan geometrisi yöntemleri için destek hakkında daha fazla bilgi için bkz: Kayma dizinler tarafından desteklenen geometrisi yöntemleri.

Sınırlayıcı kutu

Geometrik verilerin sonsuz olabilir bir düzlem kaplar.De SQL Server 2008, ancak bir kayma dizin gerektiriyor sınırlı bir alan.Decomposition sınırlı bir alan oluşturmak için geometrisi kılavuz Mozaik düzeni bir dikdörtgen gerektirir sınırlayıcı kutu.sınırlayıcı kutu dört koordinatlarıyla tanımlanan (x-min),y-min) ve (x-max),y-max), kayma dizin özellikleri olarak depolanır.Bu koordinatlar şu anlama gelir:

  • x-min sol alt köşesinde x-koordinatı ise sınırlayıcı kutu.

  • y-min sol alt köşesinde y-koordinatı ' dir.

  • x-max sağ üst köşesindeki x-koordinatı ' dir.

  • y-max sağ üst köşesinde y-koordinatı ' dir.

Not

These coordinates are specified by the BOUNDING_BOX clause of the CREATE SPATIAL INDEX Transact-SQL statement.

The (x-min,y-min) and (x-max,y-max) coordinates determine the placement and dimensions of the bounding box.Alan sınırlayıcı kutu dışında 0 numaralı tek bir hücre kabul edilir.

Kayma dizin sınırlayıcı kutu içine alan çözer.Düzey 1 ızgara ızgara hiyerarşinin doldurur sınırlayıcı kutu.Kılavuz hiyerarşisinde bir geometrik nesneyi yerleştirmek için nesnenin sınırlayıcı kutusunu koordinatları koordinatları kayma dizin karşılaştırır.

Aşağıda tanımlanan noktaları gösterilmektedir (x-min),y-min) ve (x-max),y-max) , koordinatları sınırlayıcı kutu.Kılavuz hiyerarşi üst düzey bir 4 x 4 kılavuz gösterilmektedir.Resimde amacıyla alt düzeyleri göz ardı edilir.Alanı dışında sınırlayıcı kutu bir sıfır (0) belirtilir.Bu nesne 'a' Not kısmen kutusu ve nesneyi 'b' genişletir kutuya dışında tamamen yatmaktadır hücre 0.

Koordinatları ve 0 hücresini gösteren sınırlama kutusu.

sınırlayıcı kutu bir uygulamanın uzamsal veri kısmı için karşılık gelir.Sınırlayıcı kutunun Index kayma içinde depolanan verileri tamamen içerip sütun, veya yalnızca bir bölümünü içeriyor, kadar uygulamasıdır.İşlemleri yalnızca hesaplanan tamamen, içindeki nesneler üzerinde sınırlayıcı kutu kayma dizinden yararlanabilirsiniz.Bu nedenle, üzerinde kayma dizin karşı en büyük avantajı kazanmak için bir geometry , sütun için gereksinim duyduğunuz bir sınırlayıcı kutunun tümünü veya çoğunu içeren belirtinnesneleri.

Not

Kayma dizin kılavuz yoğunluğunu görünür bounding_box_xmin, bounding_box_ymin, bounding_box_xmax, ve bounding_box_ymax sütunlarından sys.spatial_index_tessellations Katalog görünümü.

Coğrafi konum kılavuz Mozaik düzeni

Bu Mozaik düzenini yalnızca için geçerlidir bir geography sütun.Coğrafi konum kılavuz Mozaik tarafından desteklenen ve nasıl geodetic alanı anlatılmaktadır yöntemleri bu bölümde özetler sonra kılavuz hiyerarşisi içinde decomposed bir düzlem üzerine öngörülen.

Not

You can explicitly specify this tessellation scheme by using the USING GEOGRAPHY_GRID clause of the CREATE SPATIAL INDEX Transact-SQL statement.

Desteklenen Coğrafya yöntemleri

The geography data type provides built-in methods for constructing and manipulating geographyinstances that describe geographic objects.Belirli koşullar altında kayma dizinler aşağıdaki küme odaklı Coğrafya yöntemleri destekler: STIntersects(), STEquals(), and STDistance().Kayma bir dizin üzerinde bir geography veri türü sütun filtreleri nesneleri ve azaltır performans ve sorgu maliyetini uygulayarak bu yöntemleri uzamsal veri.

Coğrafya yöntemleri kayma dizinler tarafından sağlanan desteği hakkında daha fazla bilgi için bkz: Kayma dizinler tarafından desteklenen Coğrafya yöntemleri.

Projeksiyonunu Geodetic bir düzlem üzerine

Hesaplamaları üzerindeki geography (nesneler) örnekleri kabul boşluk içeren nesneler olarak geodetic bir ellipsoid.Bu alan decompose, Coğrafya kılavuz Mozaik düzeni alt ve üst hemispheres ellipsoid yüzeyine böler ve sonra aşağıdaki adımları gerçekleştirir:

  1. Her hemisphere quadrilateral piramit, özellikleri projeler.

  2. İki Piramitler düzleştirir.

  3. Non-Euclidean uçak oluşturmak üzere düzleştirilmiş Piramitler katılır.

Aşağıdaki resimde üç adımlı decomposition işlemini şematik bir görünümünü gösterir.Piramitler noktalı çizgiler her piramit, dört özellikleri sınırlarını temsil eder.Ekvator boylam çizgi ve dikey çizgiler çeşitli latitude satırları temsil eden bir dizi temsil etmek üzere yatay bir çizgi kullanarak geodetic ellipsoid 1 ve 2 numaralı adımları gösterilmektedir.1. Adım iki hemispheres öngörülen Piramitler gösterir.2. Adım düzleştirilmiş Piramitler gösterir.Öngörülen boylam satır sayısını gösteren bir düzlem oluşturacak şekilde birleştirilmiştir sonra adım 3 düzleştirilmiş Piramitler göstermektedir.Öngörülen bu satırları straightened ve burada bunlar Piramitler üzerinde düşen bağlı uzunluğu değişir dikkat edin.

Elipsoid şeklin düzleme izdüşümü

Alanı için öngörülen düzlem bir kez düzlemin dört düzey kılavuz hiyerarşisi içinde decomposed.Farklı düzeylerdeki farklı ızgara yoğunluğunu kullanabilirsiniz.Bir 4 x 4 düzey 1 kılavuza decomposed sonra uçak aşağıda gösterilmiştir.Alt-kılavuzu hiyerarşi düzeyini gösterim amacıyla göz ardı edilir.Çereze düzlemin dört düzey kılavuz hiyerarşisi içinde tam olarak decomposed.Decomposition işlemi tamamlandıktan sonra coğrafi verileri Coğrafya'dan okuma, satır satır, sütun, ve Mozaik işlemi her nesne için sırayla gerçekleştirilir.

Düzey 1 coğrafya kılavuzu

Kayma dizin destek

Yalnızca bir kayma sütun kayma dizin oluşturulabilir.Kayma dizinleri destekleyen bir tablo içinde herhangi bir kayma sütun üzerinde kayma dizinler oluşturmak ve belirli bir kayma sütun üzerinde birden fazla kayma dizinler oluşturabilirsiniz.Kayma dizinler üzerindeki kısıtlamaları hakkında daha fazla bilgi için bkz: Kayma dizinler üzerindeki kısıtlamaları.