Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Veritabanı
Azure SQL Yönetilen Örneği
Microsoft Fabric'te SQL veritabanı
Dizinleri oluştururken, yeniden oluştururken veya bırakırken disk alanı önemli bir noktadır. Yetersiz disk alanı performansı düşürebilir ve hatta dizin işleminin başarısız olmasına neden olabilir. Bu makalede, dizin veri tanımı dili (DDL) işlemleri için gereken disk alanı miktarını belirlemenize yardımcı olabilecek genel bilgiler sağlanır.
Ek disk alanı gerektirmeyen dizin işlemleri
Aşağıdaki dizin işlemleri için ek disk alanı gerekmez:
ALTER INDEX REORGANIZE; ancak log boşluğu gereklidir.DROP INDEXkümelenmemiş bir dizini bıraktığınızda.DROP INDEXkümelenmiş dizini,MOVE TOyan tümcesini belirtmeden çevrimdışı duruma getirdiğinizde ve kümelenmemiş dizinler mevcut değilse.CREATE TABLE(PRIMARY KEYveyaUNIQUEkısıtlamalar)
Ek disk alanı gerektiren dizin işlemleri
Diğer tüm dizin DDL işlemleri, işlem sırasında kullanmak için ek geçici disk alanı ve yeni dizin yapısını veya yapılarını depolamak için kalıcı disk alanı gerektirir.
Yeni bir dizin yapısı oluşturulduğunda, uygun dosyalarında ve dosya gruplarında hem eski (kaynak) hem de yeni (hedef) yapılar için disk alanı gerekir. Dizin oluşturma işlemi tamamlanana kadar eski yapı serbest bırakılmaz.
Aşağıdaki dizin DDL işlemleri yeni dizin yapıları oluşturur ve ek disk alanı gerektirir:
CREATE INDEXCREATE INDEX WITH DROP_EXISTINGALTER INDEX REBUILD-
ALTER TABLE ADD CONSTRAINT(PRIMARY KEYveyaUNIQUE) -
ALTER TABLE DROP CONSTRAINT(PRIMARY KEYveyaUNIQUE) kısıtlama kümelenmiş dizine dayalı olduğunda -
DROP INDEX MOVE TO(Yalnızca kümelenmiş dizinler için geçerlidir.)
Sıralama için geçici disk alanı
Kaynak ve hedef yapılar için gereken disk alanının yanı sıra, sorgu iyileştiricisi sıralama gerektirmeyen bir yürütme planı bulmadığı sürece sıralama için geçici disk alanı gerekir.
Sıralama gerekiyorsa, sıralama her seferinde yeni bir dizinle gerçekleşir. Örneğin, kümelenmiş dizini ve ilişkili kümelenmemiş dizinleri tek bir deyim içinde yeniden derlediğinizde, dizinler birbiri ardına sıralanır. Bu nedenle, yalnızca sıralama için gereken ek geçici disk alanının işlemdeki en büyük dizin kadar büyük olması gerekir. Bu neredeyse her zaman kümelenmiş dizindir.
SORT_IN_TEMPDB seçeneği olarak ayarlanırsaON, en büyük dizin içine tempdbsığmalıdır. Bu seçenek dizin oluşturmak için kullanılan geçici disk alanı miktarını artırsa da, kullanıcı veritabanından farklı bir disk kümesinde olduğunda tempdb dizin oluşturmak için gereken süreyi azaltabilir.
Bölümlenmiş dizinler de dahil olmak üzere her dizin (varsayılan) olarak ayarlanırsa SORT_IN_TEMPDBOFF , hedef disk alanında sıralanır ve yalnızca yeni dizin yapıları için disk alanı gerekir.
Disk alanını hesaplama örneği için bkz. Dizin disk alanı örneği.
Çevrimiçi dizin işlemleri için geçici disk alanı
Dizin işlemlerini çevrimiçi gerçekleştirdiğinizde, ek geçici disk alanı gerekir.
Kümelenmiş bir dizin çevrimiçi olarak oluşturulursa, yeniden oluşturulursa veya kaldırılırsa, eski yer işaretlerini yeni yer işaretleriyle eşlemek için geçici bir kümelenmemiş dizin oluşturulmaktadır.
SORT_IN_TEMPDB seçeneği ON olarak ayarlanırsa, bu geçici dizin tempdb içinde oluşturulur. olarak ayarlanırsa SORT_IN_TEMPDBOFF, hedef dizinle aynı dosya grubu veya bölüm düzeni kullanılır. Geçici eşleme dizini tablodaki her satır için bir kayıt içerir ve içindekiler, benzersizleştiriciler ve kayıt tanımlayıcıları dahil olmak üzere eski ve yeni yer işareti sütunlarının birleşimidir ve her iki yer işaretinde kullanılan herhangi bir sütunun yalnızca tek bir kopyasını içerir. Çevrimiçi dizin işlemleri hakkında daha fazla bilgi için bkz. Dizin işlemlerini çevrimiçi gerçekleştirme.
Uyarı
Bu seçenek SORT_IN_TEMPDB, DROP INDEX deyimler için ayarlanamaz. Geçici eşleme dizini her zaman hedef dizinle aynı dosya grubunda veya bölüm düzeninde oluşturulur.
Çevrimiçi dizin işlemleri, dizin işlemini diğer işlemler tarafından yapılan değişikliklerin etkilerinden yalıtmak için satır sürümü oluşturmayı kullanır. Bu, okunmuş satırlarda paylaşım kilitleri isteme gereksinimini önler. Çevrimiçi dizin işlemleri sırasında eşzamanlı kullanıcı güncelleştirme ve silme işlemleri, tempdb içindeki sürüm kayıtları için alan gerektirir. Daha fazla bilgi için bkz . Dizin işlemlerini çevrimiçi gerçekleştirme .
İlgili görevler
- İndeks disk alanı örneği
- Endeks işlemleri için işlem günlüğü disk alanı
- Tablonun boyutunu tahmin
- Kümelenmiş dizinin boyutunu tahmin edin
- Kümelenmemiş dizinin boyutunu tahmin etme
- Yığının boyutunu tahmin et