Bölümlenmiş tablolar ve dizinler

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiMicrosoft Fabric'te SQL veritabanı

Bölümlenmiş tablo ve dizinlerin verileri, veritabanındaki birden fazla dosya grubuna yayılmış veya tek bir dosya grubunda depolanmış olabilecek birimlere ayrılmıştır. Bir dosya grubunda birden çok dosya olduğunda, veriler orantılı doldurma algoritması kullanılarak dosyalara yayılır. Veriler yatay olarak bölümlenir, böylece satır grupları tek tek bölümlere eşlenir. Tek bir dizin veya tablonun tüm bölümleri aynı veritabanında bulunmalıdır. Veriler üzerinde sorgular veya güncelleştirmeler gerçekleştirildiğinde tablo veya dizin tek bir mantıksal varlık olarak değerlendirilir.

Bölümlemenin avantajları

Büyük tabloların veya dizinlerin bölümlenmesi aşağıdaki yönetilebilirlik ve performans avantajlarına sahip olabilir.

  • Veri toplamanın bütünlüğünü korurken verilerin alt kümelerini hızlı ve verimli bir şekilde aktarabilir veya bu alt kümelere erişebilirsiniz. Örneğin, OLTP'den OLAP sistemine veri yükleme gibi bir işlem, verilerin bölümlenmediği dakikalar ve saatler yerine yalnızca saniyeler sürer.

  • Bir veya daha fazla bölümde bakım veya veri saklama işlemlerini daha hızlı gerçekleştirebilirsiniz. İşlemler, tablonun tamamı yerine yalnızca bu veri alt kümelerini hedeflediğinden daha verimlidir. Örneğin, bir veya daha fazla bölümdeki verileri sıkıştırmayı, bir dizinin bir veya daha fazla bölümünü yeniden oluşturmayı veya tek bir bölümdeki verileri kesmeyi seçebilirsiniz. Ayrıca tek tek bölümleri tek bir tablodan arşiv tablosuna da geçirebilirsiniz.

  • Sık çalıştırdığınız sorgu türlerine bağlı olarak sorgu performansını geliştirebilirsiniz. Örneğin, bölümleme sütunları tabloların birleştirildiği sütunlarla aynı olduğunda, sorgu iyileştirici iki veya daha fazla bölümlenmiş tablo arasındaki eş birleşim sorgularını daha hızlı işleyebilir. Daha fazla bilgi için Sorgular bölümüne bakın.

  • Kilitleme yükseltmesini tablo yerine bölüm düzeyinde etkinleştirerek iş yükünün eşzamanlılığını artırabilirsiniz. Bu, tablodaki kilit rekabetini azaltabilir. Bölüme kilit yükseltmesine izin vererek kilit çekişmesini azaltmak için, LOCK_ESCALATION seçeneğini ALTER TABLE ifadesinde AUTO olarak ayarlayın.

Bileşenler ve kavramlar

Tablo ve dizin bölümleme için aşağıdaki koşullar geçerlidir.

Bölünme fonksiyonu

Bölümleme işlevi, bir tablo veya dizinin satırlarının bölümleme sütunu olarak adlandırılan belirli bir sütunun değerlerine göre bir bölüm kümesine nasıl eşlendiğini tanımlayan bir veritabanı nesnesidir. Bölümleme sütunundaki her değer bölümleme işlevine bir giriştir ve bu da bir bölüm değeri döndürür.

partition işlevi, tablonun sahip olduğu bölüm sayısını ve bölüm sınırlarını tanımlar. Örneğin, satış siparişi verilerini içeren bir tablo söz konusuysa, tabloyu satış tarihi gibi bir tarih saat sütununa göre 12 (aylık) bölüme bölmek isteyebilirsiniz.

Aralık türü ( LEFT veya RIGHT), bölüm işlevinin sınır değerlerinin sonuçta elde edilen bölümlere nasıl yerleştirileceği belirtir:

  • Aralık LEFT, aralık değerleri veritabanı altyapısına göre soldan sağa doğru artan bir sıraya dizildiğinde, sınır değerinin bu aralığın sol tarafına ait olduğunu belirtir. Başka bir deyişle, en yüksek sınır değeri bir bölüm içerisine dahil edilir.
  • RIGHT aralığı, aralık değerleri veritabanı motoru tarafından soldan sağa artan sırada sıralandığında sınır değerinin aralığın sağ tarafına ait olduğunu belirtir. Başka bir deyişle, en düşük sınırlayıcı değer bir bölüme eklenir.

Veya LEFT belirtilmezseRIGHT, LEFT aralık türü varsayılan değerdir.

Örneğin, aşağıdaki bölüm işlevi bir tablo veya dizini, bir yılın her ayına ait değerlerin bulunduğu bir datetime sütununa göre 12 bölüme ayırır. Bir aralık türü RIGHT kullanılır, bu da sınır değerlerinin her bölümde alt sınır değerleri olarak hizmet ettiğini gösterir. RIGHT bir tabloyu datetime, datetime2, veya datetimeoffset veri türlerine göre bölümlendirirken, gece yarısı değerine sahip satırların aynı gün içindeki daha sonraki saatlerdeki değerlere sahip satırlarla aynı bölümde saklandığı için, aralıklar kullanarak çalışmak genellikle daha kolaydır. Benzer şekilde, tarih veri türünü ve bir ayın veya daha fazlasının bölümlerini kullanıyorsanız, aralık RIGHT ayın ilk gününü o ayın sonraki günleriyle aynı bölümde tutar. Bu, tüm günlük verileri sorgularken kesin Bölme eleme işlemine yardımcı olur.

CREATE PARTITION FUNCTION [myDateRangePF1](DATETIME)
    AS RANGE RIGHT
    FOR VALUES ('2022-02-01', '2022-03-01', '2022-04-01',
                '2022-05-01', '2022-06-01', '2022-07-01',
                '2022-08-01', '2022-09-01', '2022-10-01',
                '2022-11-01', '2022-12-01');

Aşağıdaki tabloda, bölümleme sütunu datecol üzerinde bu bölüm işlevini kullanan bir tablo veya dizinin nasıl bölümlendiği gösterilmektedir. 1 Şubat işlevinde tanımlanan ilk sınır noktasıdır. Aralık RIGHT tipi kullanıldığından, 1 Şubat, bölüm 2'nin alt sınırıdır.

Partition 1 2 ... 11 12
Values datecol<2022-02-01 12:00AM datecol>= 2022-02-01 12:00AM AND datecol<2022-03-01 12:00AM datecol>= 2022-11-01 12:00AM AND kolon1<2022-12-01 12:00AM datecol>= 2022-12-01 12:00AM

Her iki RANGE LEFT ve RANGE RIGHT için de, en soldaki bölüm veri türünün en düşük değeri olan alt sınıra sahiptir ve en sağdaki bölüm, veri türünün en yüksek değeri olan üst sınıra sahiptir.

LEFT ve RIGHT aralık türlerini kullanan bölüm işlevleriyle ilgili daha fazla örnek için bkz. CREATE PARTITION FUNCTION.

Bölüm düzeni

Bölüm düzeni, bölüm işlevinin bölümlerini bir dosya grubuna veya birden çok dosya grubuna eşleyen bir veritabanı nesnesidir.

CREATE PARTITION SCHEME içinde bölüm şemaları oluşturmak için örnek söz dizimi bulabilirsiniz.

Filegroups

Bölüm düzenini birden çok dosya grubuyla kullanmanın iki nedeni vardır:

  • Katmanlı depolama kullanırken, birden çok dosya grubu kullanmak belirli depolama katmanlarına belirli bölümler atamanıza olanak tanır. Örneğin, daha eski ve daha az sıklıkta erişilen bölümleri daha yavaş ve daha ucuz depolama alanına yerleştirme.
  • Her dosya grubunu bağımsız olarak yedekleyebilir ve geri yükleyebilirsiniz. Bu, değişmemiş bölümlerin yinelenen yedeklemelerini atlayabileceğiniz veya yalnızca bazı bölümlerdeki verilerin geri yüklenmesi gerektiğinde geri yükleme süresini kısaltabileceğiniz anlamına gelir.

Diğer tüm bölümleme avantajları, kullanılan dosya gruplarının sayısından veya belirli dosya gruplarında bölüm yerleştirmeden bağımsız olarak geçerlidir.

Bölümlenmiş tablolar için dosyaları ve dosya gruplarını yönetmek, zaman içinde yönetim görevlerine önemli bir karmaşıklık katabilir. Yedekleme ve geri yükleme yordamlarınız birden çok dosya grubunun kullanımından yararlanmıyorsa ve katmanlı depolama kullanmıyorsanız, tüm bölümler için tek bir dosya grubu önerilir. Bölümlenmiş nesnelere dosya ve dosya grubu tasarlama kuralları , bölümlenmemiş nesneler için de geçerlidir.

SQL Server ve Azure SQL Yönetilen Örneği dosya grupları oluşturma hakkında daha fazla bilgi için bkz ALTER DATABASE . (Transact-SQL) Dosya ve Dosya Grubu Seçenekleri.

Bölümleme sütunu

Bölüm işlevinin girişi olan bir tablonun veya dizinin sütunu. Bölümleme sütunu seçerken aşağıdaki noktalar geçerlidir:

  • Bölüm işlevine katılan hesaplanan sütunlar açıkça PERSISTED olarak oluşturulmalıdır.
    • Bölümleme sütunu olarak yalnızca bir sütun kullanılabildiğinden, bazı durumlarda hesaplanan sütundaki birden çok sütunun birleştirilmiş olması yararlı olabilir.
  • Dizin anahtarı sütunları olarak kullanılmak üzere geçerli olan tüm veri türlerinin sütunları, zaman damgası dışında bölümleme sütunu olarak kullanılabilir.
  • ntext, text, image, xml, varchar(max), nvarchar(max)ve varbinary(max) gibi büyük nesne (LOB) veri türlerinin sütunları belirtilemiyor.
  • CLR kullanıcı tanımlı veri türlerini ve diğer ad veri türlerini kullanan sütunlar belirtilemiyor.

Bir tabloyu veya dizini bölümlendirmek için, CREATE TABLE, ALTER TABLE ve CREATE INDEX ifadelerinde bölümlendirme şemasını ve bölümlendirme sütununu belirtin.

Kümelenmemiş dizin oluştururken, bölüm düzeni veya dosya grubu belirtilmezse ve tablo bölümlenmişse, dizin, temel alınan tabloyla aynı bölümleme sütunu kullanılarak aynı bölümleme düzenine yerleştirilir. Var olan bir dizinin bölümlenme biçimini değiştirmek için DROP_EXISTING ifadesiyle birlikte CREATE INDEX kullanın. Bu, bölümlenmemiş bir dizini bölümlemenize, bölümlenmiş dizini bölümlenmemiş hale getirmenize veya dizinin bölüm düzenini değiştirmenize olanak tanır.

Hizalanmış dizin

karşılık gelen tablosuyla aynı bölüm düzeni üzerinde oluşturulan dizine hizalanmış dizin adı verilir. Bir tablo ve kümelenmemiş dizinleri uyumlu olduğunda, veritabanı altyapısı hem tablonun hem de dizinlerinin bölüm yapısını korurken bölümleri hızla ve verimli bir şekilde tablo içinde veya dışında değiştirebilir. Bir dizinin temel tablosuyla hizalanması için aynı bölüm işlevine katılması gerekmez. Bununla birlikte, dizinin ve temel tablonun bölüm işlevi aslında aynı olmalıdır; şöyle ki:

  • Bölüm işlevlerinin bağımsız değişkenleri aynı veri türüne sahiptir.
  • Aynı sayıda bölüm tanımlarlar.
  • Bölümler için aynı sınır değerlerini tanımlar.

Kümelenmiş dizinleri bölümleme

Kümelenmiş dizini bölümlerken, kümeleme anahtarı bölümleme sütununu içermelidir. Kümelenmiş olmayan bir dizini bölümlediğinizde ve bölümleme sütunu kümeleme anahtarında açıkça belirtilmediğinde, veritabanı altyapısı bölümleme sütununu varsayılan olarak kümelenmiş dizin anahtarları listesine ekler. Kümelenmiş dizin benzersizse bölümleme sütununu kümelenmiş dizin anahtarına açıkça eklemeniz gerekir. Kümelenmiş dizinler ve dizin mimarisi hakkında daha fazla bilgi için bkz. Kümelenmiş Dizin Tasarımı Yönergeleri.

Kümelenmemiş dizinleri bölümleme

Benzersiz bir kümelenmemiş dizini bölümlerken dizin anahtarı bölümleme sütununu içermelidir. Bir nonunique, nonclustered dizini bölümlerken veritabanı altyapısı, dizinin temel tabloyla hizalandığından emin olmak için bölümleme sütununu varsayılan olarak dizinin anahtar olmayan (dahil) sütunu olarak ekler. Veritabanı altyapısı, dizinde zaten varsa bölümleme sütununu dizine eklemez. Kümelenmemiş dizinler ve dizin mimarisi hakkında daha fazla bilgi için bkz. Kümelenmemiş Dizin Tasarımı Yönergeleri.

Hizalanmamış dizin

Hizalanmamış dizin, karşılık gelen tablosundan farklı bir şekilde bölümlenmiştir. Başka bir ifadeyle dizin, bölüm sınırlarının farklı tanımına sahip bir bölüm işlevi veya farklı bir bölümleme sütunu kullanır. Hizalanmamış bölümlenmiş dizin oluşturmak aşağıdaki durumlarda yararlı olabilir:

  • Temel tablo henüz bölümlenmemiş.
  • Dizin anahtarı benzersizdir, tablonun bölümleme sütununu içermez ve dizinin benzersizliği korunmalıdır.
  • Bir tablo ile farklı bölümlenmiş birden çok başka tablo arasında birlikte bulunan birleşimler kullanmak istiyorsunuz.

Bölümlendirme giderme

Sorgu koşulu bölümleme sütununa başvurduğunda, veritabanı altyapısı bölümlenmiş bir tabloyu veya dizini okurken bazı bölümleri ortadan kaldırabilir veya atlayabilir. Bu, sorgu performansını geliştirebilir.

Bölümlenmiş Tablolarda ve Dizinlerde Sorgu İşleme Geliştirmeleri bölümünde bölüm eleme ve ilgili kavramlar hakkında daha fazla bilgi edinin.

Limitations

  • SQL Server 2016 (13.x) SP1'inden önce, bölümlenmiş tablolar ve dizinler SQL Server'ın her sürümünde kullanılamamıştı. SQL Server sürümleri tarafından desteklenen özelliklerin listesi için bkz. SQL Server 2022'nin sürümleri ve desteklenen özellikleri.

  • Bölümlenmiş tablolar ve dizinler Azure SQL Veritabanı, Doku'daki SQL veritabanı ve Azure SQL Yönetilen Örneği'nin tüm hizmet katmanlarında kullanılabilir.

    • Azure SQL Veritabanı ve Fabric'teki SQL veritabanında, tüm bölümler PRIMARY dosya grubuna yerleştirilmelidir çünkü yalnızca PRIMARY dosya grubu sağlanmaktadır.
  • Tablo bölümleme, Azure Synapse Analytics'teki ayrılmış SQL havuzlarında kullanılabilir ve bazı söz dizimi farklılıkları vardır. Özel SQL havuzundaki Bölümleme tablolarıhakkında daha fazla bilgi edinin.

  • Bölüm işlevinin ve düzeninin kapsamı, oluşturuldukları veritabanıyla sınırlıdır. Veritabanı içinde bölüm işlevleri diğer işlevlerden ayrı bir ad alanında bulunur. Bölüm işlevleri ve bölüm şemaları bir şemaya ait değildir.

  • Bölümlenmiş tablodaki satırlardan herhangi biri bölümleme sütunundaKIL'lere sahipse, bu satırlar en soldaki bölüme yerleştirilir. Ancak, NULL ilk sınır değeri olarak belirtilirse ve RANGE RIGHT bölüm işlevi tanımında belirtilirse, en soldaki bölüm boş kalır ve DLL'ler ikinci bölüme yerleştirilir.

  • Veritabanı motoru en fazla 15.000 bölümü destekler. SQL Server 2012 (11.x) öncesi sürümlerde bölüm sayısı varsayılan olarak 1.000 ile sınırlıdır.

Performans yönergeleri

Veritabanı altyapısı, tablo veya dizin başına en çok 15.000 bölümü destekler. Ancak, çok sayıda bölüm kullanmanın bellek, bölümlenmiş dizin işlemleri, DBCC komutları, şema değişikliği ve sorgu performansı üzerinde etkileri vardır. Bu bölümde, çok sayıda bölüm içeren tasarımların performans üzerindeki etkileri açıklanır ve gerektiğinde geçici çözümler sağlanır.

Uyarı

Tasarımınız tablo veya dizin başına yüzlerce veya binlerce bölüm kullanıyorsa performans etkilerini anladığınızdan, kritik kullanım senaryolarını test edip doğruladığınızdan ve performans üzerindeki etkileri ele almak için bir planınız olduğundan emin olun.

Kesinlikle gerekli olmadıkça yüzlerce veya binlerce bölüme sahip tasarımlardan kaçının.

Bellek kullanımı ve yönergeler

Çok sayıda bölüm kullanılıyorsa en az 16 GB RAM kullanmanızı öneririz. Sistemde yeterli bellek yoksa Veri İşleme Dili (DML) deyimleri, Veri Tanım Dili (DDL) deyimleri ve diğer işlemler yetersiz bellek nedeniyle başarısız olabilir. Çok fazla bellek kullanan işlemler çalıştıran 16 GB RAM'e sahip sistemlerde çok sayıda bölümde çalışan işlemlerde bellek yetersiz kalabilir. Bu nedenle, 16 GB'ın üzerinde belleğiniz arttıkça performans ve bellek sorunlarıyla karşılaşma olasılığınız da o kadar düşüktür.

Bellek sınırlamaları, veritabanı altyapısının bölümlenmiş dizin oluşturma performansını veya becerisini etkileyebilir. Özellikle dizin, temel tablosuyla veya kümelenmiş diziniyle hizalanmamışsa bu durum söz konusudur.

SQL Server ve Azure SQL Yönetilen Örneği'nde index create memory (KB) Sunucu Yapılandırma Seçeneğini artırabilirsiniz. Daha fazla bilgi için bkz . Sunucu yapılandırması: dizin oluşturma belleği.

Azure SQL Veritabanı için, daha fazla bellek elde etmek için veritabanının işlem boyutunu geçici veya kalıcı olarak artırmayı göz önünde bulundurun.

Bölümlenmiş dizin işlemleri

1.000'den fazla bölümü olan bir tabloda hizalanmamış dizinler oluşturmak ve yeniden oluşturmak mümkün olabilir, ancak desteklenmez. Bunu yapmak, bu işlemler sırasında performansın düşmesine veya aşırı bellek tüketimine neden olabilir.

Hizalanmış dizinlerin oluşturulması ve yeniden oluşturulması, bölüm sayısı arttıkça yürütülmesi daha uzun sürebilir. Performans ve bellek sorunlarıyla karşılaşabileceğiniz gibi dizin oluşturma ve yeniden oluşturma komutlarını aynı anda çalıştırmamanızı öneririz.

Veritabanı altyapısı bölümlenmiş dizinler oluşturmak için sıralama gerçekleştirdiğinde, önce her bölüm için bir sıralama tablosu oluşturur. Ardından sıralama tablolarını her bölümün ilgili dosya grubunda veya tempdb dizin seçeneği belirtilmişse SORT_IN_TEMPDB oluşturur. Her sıralama tablosunun oluşturulması için en az bellek miktarı gerekir. Temel tablosuyla hizalanmış bölümlenmiş bir dizin oluştururken, sıralama tabloları daha az bellek kullanılarak birer birer oluşturulur. Ancak, hizalanmamış bölümlenmiş dizin oluştururken sıralama tabloları aynı anda oluşturulur. Sonuç olarak, bu eşzamanlı sıralamaları işlemek için yeterli bellek olmalıdır. Bölüm sayısı ne kadar fazlaysa bellek de o kadar fazla gereklidir. Her bölüm için her sıralama tablosunun en küçük boyutu 40 sayfadır ve sayfa başına 8 kilobayttır. Örneğin, 100 bölümlü hizalanmamış bölümlenmiş dizin, aynı anda 4.000 (40 * 100) sayfayı seri olarak sıralamak için yeterli bellek gerektirir. Bu bellek kullanılabilir durumdaysa derleme işlemi başarılı olur, ancak performans olumsuz etkilenebilir. Bu bellek kullanılamıyorsa derleme işlemi başarısız olur. Alternatif olarak, 100 bölümlü hizalanmış bölümlenmiş dizin, sıralamalar aynı anda gerçekleştirilemediğinden 40 sayfayı sıralamak için yalnızca yeterli bellek gerektirir.

Hem hizalanmış hem de hizalanmamış dizinler için, veritabanı altyapısı dizin derleme işleminde sorgu paralelliği kullanıyorsa bellek gereksinimi daha yüksek olabilir. Paralellik derecesi (DOP) ne kadar yüksek ise bellek gereksinimi de o kadar yüksektir. Örneğin, veritabanı altyapısı DOP'yi 4 olarak ayarlarsa, 100 bölümlü hizalanmamış bölümlenmiş dizin, aynı anda 4.000 sayfayı veya 16.000 sayfayı sıralamak için dört işlemci için yeterli bellek gerektirir. Bölümlenmiş dizin hizalanmışsa, bellek gereksinimi 40 sayfayı veya 160 (4 * 40) sayfayı sıralayan dört işlemciye indirilir. Bir geçici çözüm olarak paralellik derecesini azaltmak için MAXDOP dizin seçeneğini, potansiyel olarak daha uzun bir dizin derleme süresi pahasına kullanabilirsiniz.

DBCC komutları

Daha fazla sayıda bölümle, bölüm sayısı arttıkça DBCC CHECKDB ve DBCC CHECKTABLE gibi DBCC komutlarının yürütülmesi daha uzun sürebilir.

Queries

Bir tablo veya dizini bölümledikten sonra, bölüm eleme kullanan sorgular karşılaştırılabilir veya iyileştirilmiş performansa sahip olabilir. Bölüm eleme kullanmayan sorguların yürütülmesi, bölüm sayısı arttıkça daha uzun sürebilir.

Örneğin, bir tabloda 100 milyon satır ve sütun A ve Bolduğunu varsayalım.

  • Senaryo 1'de tablo sütununda A1.000 bölüme ayrılmıştır.
  • Senaryo 2'de tablo sütununda A10.000 bölüme ayrılmıştır.

tablodaki WHERE yan tümcesi sütunda filtreleme yapan bir A sorgu, bölüm eleme gerçekleştirir ve bölümlerin bir alt kümesini tarar. Bir bölümde taranacak satır sayısı az olduğundan, 2. senaryoda aynı sorgu daha hızlı çalıştırılabilir. WHERE koşulunu B sütununda içeren bir sorgu, tüm bölümleri tarar. 1. senaryoda sorgu, taranacak bölüm sayısı az olduğundan senaryo 2'den daha hızlı çalışabilir.

Bölümleme sütunu dışındaki sütunlarda , TOPveya MAX kullanan MINsorgular, tüm bölümlerin değerlendirilmesi gerektiğinden bölümleme performansında azalmayla karşılaşabilir.

Benzer şekilde, tek satırlı arama veya küçük aralık taraması gerçekleştiren bir sorgu bölümlenmiş tabloya göre daha uzun sürer. Sorgu koşulu bölümleme sütununu içermiyorsa bölümlenmiş tabloya kıyasla daha uzun sürer çünkü bölümlemeler kadar çok arama veya tarama gerçekleştirmesi gerekir. Bu nedenle bölümleme, bu tür sorguların yaygın olduğu OLTP sistemlerinde performansı nadiren artırır.

İki veya daha fazla bölümlenmiş tablo arasında denklik içeren sorguları sık sık çalıştırıyorsanız, bölümleme sütunları tabloların birleştirildiği sütunlarla aynı olmalıdır. Ayrıca, tablolar veya dizinleri yan yana yerleştirilmelidir. Bu, aynı adlandırılmış bölüm işlevini kullandıkları veya temelde aynı olan farklı bölüm işlevleri kullandıkları anlamına gelir:

  • Bölümleme için kullanılan parametrelerin sayısı aynıdır ve karşılık gelen parametreler aynı veri türleridir.
  • Aynı sayıda bölüm tanımlayın.
  • Bölümler için aynı sınır değerlerini tanımlayın.

Bu şekilde, sorgu iyileştirici birleştirme işlemini daha hızlı gerçekleştirebilir, çünkü birleştirme, aynı konumda bulunan bölüm çiftlerinden gelen verileri işler. Bir sorgu birlikte konumlandırılmamış veya birleştirme alanında bölümlenmemiş iki tabloyu birleştirirse, bölümlerin varlığı sorgu işlemeyi hızlandırmak yerine yavaşlatabilir.

Bazı sorgularda kullanmak $PARTITION yararlı olabilir. Daha fazla bilgi için bkz. $PARTITION.

Bölümlenmiş tablolar ve dizinler için paralel sorgu yürütme stratejisi ve ek en iyi yöntemler de dahil olmak üzere sorgu işlemede bölüm işleme hakkında daha fazla bilgi için bkz. Bölümlenmiş Tablolarda ve Dizinlerde Sorgu İşleme Geliştirmeleri.

Bölümlenmiş dizin işlemleri sırasında istatistik hesaplaması

Bölümlenmemiş bir dizin oluşturulduğunda veya yeniden oluşturulduğunda, veritabanı altyapısı dizindeki tüm satırları tarayarak dizinde istatistikler de oluşturur. Ancak bölümlenmiş dizin oluşturulduğunda veya yeniden oluşturulduğunda istatistikler varsayılan örnekleme algoritması kullanılarak oluşturulur.

Bölümlenmiş dizinler üzerinde daha büyük bir örneği veya tablodaki tüm satırları tarayarak istatistik oluşturmak veya güncellemek için CREATE STATISTICS veya UPDATE STATISTICS'i SAMPLE veya FULLSCAN yan tümceleriyle birlikte kullanın.