Çevrimiçi ındex işlemi gerçekleştirmek için yönergeler
Çevrimiçi dizin işlemi gerçekleştirdiğinizde, aşağıdaki kurallar uygulanır:
Clustered) dizinler gerekir oluşturulabilir, yeniden veya bırakılan çevrimdışı (LOB) büyük nesne veri türleri temel alınan tablo içeriyorsa,: image, ntext,text,varchar(max),nvarchar(max),varbinary(max), andxml.
Benzer kümelenmemiş dizinleri tablo LOB veri türlerini içerir, ancak bu sütunların hiçbiri dizin tanımı anahtar ya da olmayan (içerilen) sütunu olarak kullanılan çevrimiçi oluşturulabilir.LOB veri türü sütunlarındaki ile tanımlanan kümelenmemiş dizinler oluşturulmuş olmalı veya yeniden çevrimdışı.
Yerel geçici tablolar dizinlerde olamaz oluşturuldu, yeniden veya çevrimiçi bıraktı.Bu kısıtlama, global geçici tablolar üzerindeki dizinler için geçerli değildir.
Not
Çevrimiçi bir dizin işlemleri yalnızca kullanılabilir SQL Server Enterprise Developer ve değerlendirme sürümleri.
Aşağıdaki tablo, dizin işlemleri çevrimiçi gerçekleştirilebilir ve çevrimiçi işlemlerini bırakılan dizinleri gösterir.Ek kısıtlamalar da bulunmaktadır.
Çevrimiçi dizin işlemi |
Dışlanan dizinler |
Diğer kısıtlamalar |
---|---|---|
alter DİZİN YENİDEN OLUŞTURMA |
Devre dışı kümelenmiş dizin veya dizinli görünüm devre dışı XML dizini Yerel geçici tablo dizin |
Anahtar belirtme ALL işlemin ne zaman başarısız olmasına neden olabilir tablo çıkarılmış bir dizini içeriyor. Ek kısıtlamalar devre dışı bırakılmış dizinleri yeniden uygulayın.Daha fazla bilgi için bkz: Dizinler ve kısıtlamalar devre dışı bırakma yönergeleri. |
DİZİN OLUŞTURMA |
XML dizini Bir görünümde ilk benzersiz kümelenmiş dizin Yerel geçici tablo dizin |
|
drop_existing İLE DİZİN OLUŞTURMA |
Devre dışı kümelenmiş dizin veya dizinli görünüm devre dışı Yerel geçici tablo dizin XML dizini |
|
BIRAKMA DİZİNİ |
devre dışı dizin XML dizini Kümelenmemiş dizin Yerel geçici tablo dizin |
Tek bir deyim içinde birden çok dizin belirtilemez. |
ALTER tablo ADD CONSTRAINT (birincil anahtar veya UNIQUE) |
Yerel geçici tablo dizin Kümelenmiş dizin |
Bir defada yalnızca bir subclause izin verilir.Örneğin, ekleyemez veya birincil anahtar veya UNIQUE kısıtlamaları aynı ALTER tablo deyiminde bırakın. |
ALTER tablo DROP CONSTRAINT (birincil anahtar veya UNIQUE) |
Kümelenmiş dizin |
|
temel alınan tablo olamaz değişiklik, kesilmiş veya çevrimiçi dizin işlemi sürecinde iken bıraktı.
Çevrimiçi seçeneğini (açık veya kapalı) ayarı oluşturduğunuzda veya doğrudan belirtilen bir kümelenmiş dizin yeniden oluşturulması, tüm nonkümelenmiş dizines uygulanır.Kümelenmiş dizin çevrimiçi CREATE INDEX ile DROP_EXISTING kullanarak yerleşik olarak bulunur, örneğin, ON, tüm ilişkili çevrimiçi = kümelenmemiş dizinleri yeniden çevrimiçi de.
Oluşturduğunuzda veya bir benzersiz yeniden çevrimiçi dizin oluşturucu dizin ve bu nedenle benzersiz ihlal aynı anahtar eklemek bir kullanıcı aynı anda hareket deneyebilirsiniz.Kaynak tablo özgün satırdan yeni dizine taşınır önce kullanıcı tarafından girilen bir satırı (hedef) yeni dizin eklenir, çevrimiçi dizin işlemi başarısız olur.
Kullanıcı veya uygulama etkinlikleri nedeniyle veritabanı güncelleştirmeleri kurduğunda değil ortak olsa da, çevrimiçi dizin işlemi bir kilitlenmeye neden olabilir.Bu nadir durumlarda,SQL Server Database Enginebir çıkmaz kurban. kullanıcı veya uygulama etkinlik seçin
Aynı tabloda aynı anda çevrimiçi dizin DDL işlemleri gerçekleştirmek veya yalnızca zaman, çok sayıda yeni kümelenmemiş dizinleri oluşturma veya kümelenmemiş dizinler yeniden düzenleme görüntüleyebilirsiniz.Aynı zamanda gerçekleştirilen diğer tüm çevrimiçi dizin işlemler başarısız.Örneğin, varolan bir dizini çevrimiçi aynı tablo üzerinde yeniden oluşturma sırasında çevrimiçi yeni bir dizin oluşturamazsınız.
Disk alanı konuları
Genellikle, disk alanı gereksinimleri çevrimiçi ve çevrimdışı dizin işlemleri için aynıdır.Eşleme geçici dizine göre gerekli ek disk alanı bir istisnadır.Bu geçici dizin oluşturma, yeniden veya kümelenmiş bir dizini bırakma dizini çevrimiçi işlemlerde kullanılır.kümelenmiş dizin çevrimiçi bırakarak çevrimiçi kümelenmiş dizin oluşturma gibi alanı gerektirir.Daha fazla bilgi için bkz: Dizin DDL operasyonlar için disk alanı gereksinimleri.
Performans konuları
Çevrimiçi dizin işlemleri güncelleştirme etkinliği eşzamanlı kullanıcıya izin vermek, ancak dizin işlemleri güncelleştirme etkinliği çok yoğun, daha uzun sürer.Genellikle, çevrimiçi dizin işlemleri eş zamanlı güncelleştirme etkinliği düzey ne olursa olsun karşılığı çevrimdışı dizin işlemleri daha yavaş olacaktır.
Kaynak ve hedef yapıları çevrimiçi dizin işlemi sırasında güncelleştirilir kaynak kullanımı için ekleme, güncelleştirme ve hareketlerini sil, büyük olasılıkla çift kadar artırılır.Bu azaltma performans ve daha fazla kaynak kullanımı, özellikle CPU saat, dizin işlemi sırasında neden olabilir.Çevrimiçi dizin işlemleri tam olarak kaydedilir.
Çevrimiçi işlem öneririz, ancak, ortam ve belirli gereksinimleri değerlendirmelidir.Dizin işlemleri çevrimdışı çalışacak şekilde en iyi olabilir.Böylece, kullanıcıların erişim işlemi sırasında veri sınırlı, ancak işlemi daha hızlı sonlandırır ve daha az kaynak kullanır.
Çok işlemcili bilgisayarlarda çalıştıranSQL ServerKuruluş, dizin ifadeleri tarama gerçekleştirir ve sıralama işlemleri diğer sorguları do. gibi dizin deyim ile ilişkili daha fazla işlemci kullanabilirMAXDOP dizin seçeneği, çevrimiçi dizin çalışması için ayrılmış olan işlemci sayısını denetlemek için kullanabilirsiniz.Bu durumda, dizin işleme, eşzamanlı kullanıcı tarafından kullanılan kaynakları dengeleyebilirsiniz.Daha fazla bilgi için bkz: Parallel ındex işlemi yapılandırma.
Bir S-lock veya Sch-M kilit dizin işleminin son aşaması tutulması için BEGIN TRANSACTION... yürütme blok gibi bir açık kullanıcı hareketi içinde çevrimiçi dizin işlemi çalıştırdığınızda, dikkatli olun.Böylece, bu nedenle kullanıcı eşzamanlılık impeding hareket sonuna kadar tutulması için kilit neden olur.
Hareket günlüğü ile ilgili konular
Büyük ölçekli dizin işlemleri, gerçekleştirilen çevrimdışı veya çevrimiçi olarak hızlı bir şekilde doldurmak işlem günlüğü neden büyük veri yükü oluşturabilir.Dizin işlemi tamamlanıncaya kadar dizin işlemi yeniden hareket alınmasını sağlamak için günlük kesilmiş olamaz; ancak, oturum dizini işlemi sırasında yedeklenebilir.Bu nedenle, işlem günlüğü dizini işlem süresince dizin işlem hareketleri hem de tüm eşzamanlı kullanıcı işlemleri depolamak için yeterli boş alan olması gerekir.Daha fazla bilgi için bkz: Indeks işlemleri için işlem günlüğü disk alanı.
See Also