SORT_IN_TEMPDB seçeneği için dizinler

Oluşturmak veya bir dizin yeniden SORT_IN_TEMPDB seçeneği on olarak ayarlandığında, yönlendirebilirsiniz SQL Server Veritabanı Altyapısıkullanmaya tempdb dizin oluşturmak için kullanılan ara sıralama sonuçları depolamak için. Bu seçeneği, bir dizin oluşturmak için kullanılan geçici disk alanı miktarını artırır, ancak seçeneği oluşturmak veya bir dizin yeniden oluşturmak için gereken süreyi azaltmak ne zaman tempdb diskleri kullanıcı veritabanı farklı bir dizi olduğunu. Hakkında daha fazla bilgi için tempdb, bakın Dizin yapılandırma bellek sunucu yapılandırma seçeneği oluşturun.

Dizin oluşturma aşamalarını

Olarak Veritabanı Altyapısıbir dizin oluşturur, aşağıdaki aşamalardan gider:

  • Veritabanı Altyapısıİlk anahtar değerleri almak için temel tablo veri sayfalarını tarar ve her veri satırı için bir dizin yaprak satır oluşturur. İç sıralama arabellekleri yaprak dizin girişleri ile doldurduktan sonra girişleri sıralanır ve çalıştırmak bir ara sıralama diske yazılması. Veritabanı AltyapısıSonra veri sayfası tarama yeniden sıralama arabellekleri dolu kadar devam. Temel tablonun tüm satırlar işlenen kadar sıralama ve bir sıralama çalıştırın yazarak ve ardından birden çok veri sayfalarını tarama bu alışkanlığını devam eder.

    Kümelenmiş bir dizin, tablonun veri satırları için dizin yaprak satır vardır; Bu nedenle, ara sıralama çalıştırır tüm veri satırlarını içerir. Kümelendirilmemiş bir dizin yaprak satır nonkey sütunlar içerebilir, ancak genellikle bir kümelenmiş dizini küçüktür. Dizin anahtarlarının büyük veya dizinde içerilen birkaç nonkey sütunları kümelendirilmemiş sıralama çalıştırmak büyük olabilir. Nonkey sütunları da dahil olmak üzere hakkında daha fazla bilgi için bkz: NIB - Create Indexes with Included Columns.

  • Veritabanı AltyapısıTek, sıralanmış bir akış halinde sıralanmış çalışan dizin yaprak satır birleştirir. Sıralama birleştirme bileşenini Veritabanı Altyapısıkoşmak, her tür ilk sayfa ile başlar, tüm sayfaların en düşük anahtar bulur ve satır dizin yaprak geçişleri oluşturma bileşeni. Sonraki en düşük anahtarı işlenir ve ardından gelecek ve benzerleri. Son yaprak dizin satır çalıştırmak sayfa sıralama ayıklanır işlemi çalıştırmak bu tür sonraki sayfaya kaydırır. Ölçüde çalıştırmak bir tür tüm sayfalar işlenmiştir, ne ölçüde serbest kalır. Her yaprak dizin satır geçirilir dizin bileşeni oluşturmak, arabellek yaprak dizin sayfasına eklenir. Her yaprak sayfa, o dolu olarak yazılır. Yaprak sayfaları yazılı olarak, Veritabanı Altyapısıda dizinin üst düzeyleri oluşturur. O dolduğunda her üst düzey dizin sayfası yazılır.

SORT_IN_TEMPDB seçeneği

SORT_IN_TEMPDB off, varsayılan olarak ayarlandığında sıralama çalıştırır hedef filegroup içinde saklanır. Dizin oluşturma ilk aşamasında, temel tablo sayfalarının farklı okuma ve yazma sıralama çalışan disk okuma/yazma kafaları diskin bir alandan diğerine taşıyın. Veri sayfaları taranmış kafaları veri sayfası mevcuttur. Onlar sıralama arabellekleri doldurun ve geçerli sıralama koşmak yuvarlak yüzey ve tablo sayfa tarama devam gibi veri sayfa alanına geri taşımak için yazılmadı boş bir alana taşıyın. Okuma/yazma kafası hareket ikinci aşamasında daha fazladır. O zaman sıralama işlemi genellikle her sıralama alanı çalıştırmak okunma sıklığıdır dönüşümlü olur. Hem sıralama çalıştırır ve yeni dizin sayfaları hedef filegroup içinde yerleşiktir. Yani aynı anda Veritabanı Altyapısıokur yayılıyor sıralama çalıştırır arasında bu düzenli olarak onlar dolu yeni dizin sayfaları yazmak için dizin kapsamlarını atlamak zorunda.

SORT_IN_TEMPDB seçeneği on olarak ayarlanmışsa ve tempdb ilk aşamasında hedef filegroup disklerinden ayrı bir dizi veri sayfaları okuma farklı bir diskte yazma sıralama çalışma alanında meydana 's tempdb. Bu disk okuma ve veri anahtarları genellikle devam daha seri olarak disk ve yazma anlamına gelir tempdb diski de genellikle seri, gibi son dizin oluşturmak için yazıyor. Bile diğer kullanıcıların veritabanını kullanarak ve ayrı bir disk adreslerine erişim okuma ve yazma genel deseni daha verimli zaman değil daha SORT_IN_TEMPDB belirtilen.

Özellikle dizin oluşturma işlemi paralel olarak sürüp değil eğer SORT_IN_TEMPDB seçeneği dizin kapsamlarını, contiguity artırabilir. Sıralama alanları veritabanı konumları konusunda biraz rasgele aralıklarla serbest alan çalışır. Sıralama çalışma alanları serbest olarak sıralama çalışma alanları hedef filegroup içinde bulunur, onlar tarafından inşa edilmiştir gibi dizin yapısı tutulacağı kapsamlarını isteklerini elde edilebilir. Bu dizin uzantıların bir ölçüde konumlarını rasgele. Eğer sıralama alanları ayrı ayrı içinde tutulur tempdb, onlar içinde serbest sıra dizin kapsamlarını konumunu etkilemez. Ayrıca, ara sıralama çalışınca depolanmış olan tempdb hedef filegroup yerine, kullanılabilir daha fazla alan hedef filegroup içinde. Bu dizin extent bitişik olması olasılığını artırır.

SORT_IN_TEMPDB seçeneği yalnızca geçerli deyimi etkiler. İçinde dizin oldu veya olmadı hiçbir meta veri kayıtlarını sıralama tempdb. Örneğin, SORT_IN_TEMPDB seçeneği kullanılarak kümelendirilmemiş dizin oluşturursanız ve daha sonra kümelenmiş bir dizin seçeneği belirtmeden oluşturma Veritabanı Altyapısıkümelendirilmemiş dizin oluşturur seçeneği kullanın değil.

[!NOT]

Sıralama işlemi gerekli değilse veya sıralama bellekte gerçekleştirilen SORT_IN_TEMPDB seçeneği yoksayılır.

Disk alanı gereksinimleri

SORT_IN_TEMPDB seçeneği on olarak ayarladığınızda, kullanılabilir yeterli boş disk alanı olması gerekir tempdb ara sıralama çalıştırır ve hedef filegroup yeni dizin tutmak için yeterli boş disk alanı için. Yeterli boş alan ve orada herhangi bir nedenle diske veya otomatik büyüme boşluk kapalı olarak ayarlandığı gibi veritabanlarının otomatik büyüme daha fazla yer almaya can't create INDEX deyimi başarısız olur.

SORT_IN_TEMPDB off için ayarlanır, kullanılabilir boş disk alanı hedef filegroup kabaca son dizin boyutunu olmalıdır. İlk aşamasında, sıralama çalıştırır yerleşiktir ve hakkında son dizin aynı miktarı alanı gerektirir. O işlendikten sonra ikinci aşamasında ölçüde çalıştırmak her tür serbest kalır. Bu çalıştırmak sıralama alanları, hangi uzantıların son dizin sayfaları tutmak için iktisap edilmesi aynı oranda hakkında serbest olduğu anlamına gelir; Bu nedenle, genel alan gereksinimlerini büyük ölçüde son dizin boyutunu aşmaması. Eğer boş alan miktarını çok son dizin boyutunu yakın olduğu bir yan etkisi bu Veritabanı Altyapısıgenellikle onlar serbest sonra kapsamlarını çok hızlı koşmak sıralama yeniden. Sıralama çalıştırmak kapsamlarını biraz rastgele bir şekilde serbest olduğundan, bu dizin kapsamlarını Bu senaryoda süreklilik azaltır. SORT_IN_TEMPDB off için ayarlanmış ise, eğer yeterli boş alan kullanılabilir hedef filegroup kapsamlarını çalıştırmak taze deallocated sıralama gelen bir bitişik havuz yerine dizin kapsamlarını tahsis dizin kapsamlarını süreklilik artırıldı.

Kümelendirilmemiş dizin oluşturduğunuzda, size kullanılabilir boş alan olmalıdır:

  • SORT_IN_TEMPDB on olarak ayarlanmışsa, yeterli boş alan olmalıdır tempdb sıralamanın çalışan depolama ve hedef filegroup son dizin yapısını depolamak için yeterli boş alan. Sıralama çalıştırır, dizin yaprak satır içerir.

  • SORT_IN_TEMPDB off için ayarlanır, hedef dosya grubu boş alan son dizin yapısını saklamak için büyük olmalıdır. Dizinin devamlılığını may genişletir, daha fazla boş alan varsa geliştirilmiş.

Kümelendirilmemiş dizinleri olmayan bir tablo kümelenmiş bir dizin oluşturduğunuzda, size kullanılabilir boş alan olmalıdır:

  • SORT_IN_TEMPDB on olarak ayarlanmışsa, yeterli boş alan olmalıdır tempdb sıralama saklamaya çalışır. Bu tabloya veri satırları içerir. Hedef filegroup son dizin yapısını depolamak için yeterli boş alan olmalıdır. Bu tablo ve dizin b ağaç veri satırlarını içerir. Büyük anahtar boyutu veya dolgu etmeni düşük bir değere sahip olması gibi faktörler tahmini ayarlamanız gerekebilir.

  • SORT_IN_TEMPDB off için ayarlanır, boş alanı hedef filegroup final masasına saklamak için büyük olmalıdır. Bu dizin yapısını içerir. Daha fazla boş alan varsa tablo ve dizin kapsamlarını süreklilik gelişmiş olabilir.

Kümelenmiş bir dizin tablo oluşturduğunuzda have kümelendirilmemiş dizinler, kullanılabilir boş alan olarak olması gerekir:

  • SORT_IN_TEMPDB on olarak ayarlanmışsa, yeterli boş alan olmalıdır tempdb tüm dizinler son yapıları depolamak için hedef filegroup sıralama işlemleri için en büyük dizin, normalde Kümelenmiş dizin ve yeterli boş alan koleksiyonu depolamak için. Bu tabloya veri satırları içeren Kümelenmiş bir dizin içerir.

  • SORT_IN_TEMPDB off için ayarlanır, boş alanı hedef filegroup final masasına saklamak için büyük olmalıdır. Bu yapıların tüm dizinleri içerir. Daha fazla boş alan varsa tablo ve dizin kapsamlarını süreklilik gelişmiş olabilir.

ilişkili Görevler

Index (Transact-sql) oluştur

Yeniden düzenleme ve dizinler yeniden oluşturma

İlişkili İçerik

ALTER INDEX (Transact-SQL)

Dizin yapılandırma bellek sunucu yapılandırma seçeneği oluşturun

Dizin ddl işlemleri için disk alanı gereksinimleri