Çevrimiçi dizin işlemleri için kurallar

Çevrimiçi dizin işlemleri gerçekleştirdiğinizde, aşağıdaki kurallar uygulanır:

  • Kümelenmiş dizin oluşturulmalıdır, yeniden ya da bırakılan çevrimdışı temel tablo aşağıdaki büyük nesne (lob) veri türleri içeren: image, ntext, ve text.

  • Benzer kümelendirilmemiş dizinler zaman tablo lob veri türleri içerir, ancak bu sütunlar hiçbiri anahtarının veya nonkey (dahil) sütunlar dizini tanımındaki kullanılan çevrimiçi oluşturulabilir.

  • Yerel bir temp tablolarda dizinler oluşturulmuş, yeniden veya çevrimiçi bırakılan olamaz. Bu kısıtlama, temp genel tablolarda dizinler için geçerli değil.

[!NOT]

Çevrimiçi dizin işlemleri her sürümünde kullanılamaz Microsoft SQL Server. Sürümü tarafından desteklenen özellikleri listesi için SQL Serverbakın SQL Server 2012 Sürümleri Tarafından Desteklenen Özellikler.

Can be performed çevrimiçi dizin işlemleri ve bu online işlemlerinden dışlanan dizinler aşağıdaki tabloda gösterilmektedir. 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

Engelli Kümelenmiş dizin veya dizin oluşturulmuş görünüm devre dışı

XML dizini

Yerel geçici tablo üzerinde dizin

TÜM işlem tablosu dışlanan dizin içerir başarısız olmasına neden olabilir anahtar belirtme.

Devre dışı bırakılmış dizinler yeniden oluşturuluyor ek kısıtlamalar geçerlidir. Daha fazla bilgi için, bkz. Dizinler ve kısıtlamalar devre dışı bırakma.

DİZİN OLUŞTURMA

XML dizini

İlk benzersiz kümelenmiş dizin üzerinde bir görünüm

Yerel geçici tablo üzerinde dizin

 

DROP_EXISTING İLE DİZİN OLUŞTURMA

Engelli Kümelenmiş dizin veya dizin oluşturulmuş görünüm devre dışı

Yerel geçici tablo üzerinde dizin

XML dizini

 

DROP INDEX

Devre dışı bırakılmış dizini

XML dizini

Kümelendirilmemiş dizin

Yerel geçici tablo üzerinde dizin

Tek bir deyimi içinde birden çok dizin belirtilemez.

alter table add CONSTRAıNT'ı (PRIMARY key veya UNIQUE)

Yerel geçici tablo üzerinde dizin

Kümelenmiş dizin

Bir kerede tek bir subclause izin verilir. Örneğin, ekleme ve birincil anahtar veya benzersiz kısıtlama aynı alter table deyiminde bırakma.

alter table add CONSTRAıNT'ı (PRIMARY key veya UNIQUE)

Kümelenmiş dizin

 

Temel tablo olamaz güncellenmiştir, kesildi veya çevrimiçi dizin işlemi işleminde çalışırken bırakılan.

Oluşturduğunuzda veya kümelenmiş dizin bırakın belirtilen ONLINE seçeneği ayarı (on ya da off) oluşturulması gerekir herhangi kümelendirilmemiş dizinler uygulanır. Kümelenmiş bir dizin çevrimiçi DROP_EXISTING ile dizin oluşturma kullanılarak oluşturulursa, örneğin çevrimiçi = on, tüm ilişkili kümelendirilmemiş dizinler yeniden çevrimiçi da.

Oluşturduğunuzda ya da bir benzersiz yeniden çevrimiçi dizin dizin Oluşturucusu'nu ve eşzamanlı kullanıcı hareket bu nedenle benzersizlik ihlal aynı anahtarı eklemek deneyebilirsiniz. Bir satırda girilen kaynak tablo özgün satırdan taşınmadan önce kullanıcı için yeni bir dizin yeni bir dizin (hedef) eklenir, çevrimiçi dizin işlemi başarısız olur.

Çevrimiçi dizin işlemi her ne kadar yaygın değildir, o kullanıcı veya uygulama faaliyetleri nedeniyle veritabanı güncellemeleri ile etkileşim kilitlenme neden olabilir. Bu nadir durumlarda SQL Server Veritabanı Altyapısıkullanıcı ya da uygulama etkinliği kilitlenme kurbanı olarak seçecek.

Aynı tablo eşzamanlı çevrimiçi dizin ddl işlemleri gerçekleştirmek ya da sadece zaman yeni birden çok kümelendirilmemiş dizinler oluşturma, veya kümelendirilmemiş dizinleri yeniden görüntüleyin. Aynı anda gerçekleştirilen tüm diğer çevrimiçi dizin işlemleri hata verir. Örneğin, varolan bir dizini çevrimiçi aynı masada yeniden inşa ederken ç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. Geçici eşleme dizini tarafından gerekli ek disk alanı bir istisnadır. Bu geçici dizin oluşturma, yeniden veya kümelenmiş dizin bırakın çevrimiçi dizin işlemleri kullanılır. Kümelenmiş bir dizin çevrimiçi bırakarak çevrimiçi kümelenmiş bir dizin oluşturma gibi daha fazla alan gerektirir. Daha fazla bilgi için, bkz. Dizin ddl işlemleri için disk alanı gereksinimleri.

Performans Değerlendirmeleri

Çevrimiçi dizin işlemleri eşzamanlı kullanıcı güncelleştirme etkinliği izin verir, ancak dizin işlemleri güncelleştirme etkinliği çok ağır ise daha uzun sürer. Genellikle çevrimiçi dizin işlemleri eşdeğer çevrimdışı dizin işlemleri eş zamanlı güncelleştirme aktivite düzeyine bakılmaksızın daha yavaş olacaktır.

Çünkü hem kaynak hem de hedef yapılar için ekleme, kaynak kullanımı çevrimiçi dizin işlemi sırasında tutulan güncelleştirmek ve hareketlerini Sil, potansiyel olarak çift kadar artırılır. Bu azalma performans ve büyük kaynak kullanımı, özellikle cpu süresi, dizin işlemi sırasında neden olabilir. Çevrimiçi dizin işlemleri tam olarak kaydedilir.

Çevrimiçi işlemler öneririz, ancak belirli gereksinimleri ve ortamınıza değerlendirmelidir. Dizin işlemleri çevrimdışı çalışması için uygun olabilir. Bu sayede, kullanıcılar veri işlem sırasında erişim sınırlandırmış, ancak işlemi daha hızlı tamamlar ve daha az kaynak kullanır.

Çok işlemcili bilgisayarlarda çalışan SQL Server 2012INDEX deyimleri gibi diğer sorgu yapacağını INDEX deyimi ile ilişkili işlemleri sıralamak ve tarama gerçekleştirmek için daha fazla işlemci kullanabilirsiniz maxdop dizin seçeneği işlemci çevrimiçi dizin işlemi için özel sayısını denetlemek için kullanabilirsiniz. Bu şekilde, bu eşzamanlı kullanıcıların dizin işlemi tarafından kullanılan kaynakları dengeleyebilirsiniz. Daha fazla bilgi için, bkz. Parallel ındex işlemi yapılandırma. Destek Paralel operasyonlar endeksli SQL Server sürümleri hakkında daha fazla bilgi için Özellikleri desteklenen sürümleri SQL Server 2012 yılına (https://go.microsoft.com/fwlink/?linkid=232473).

Bir s-lock veya Sch m kilit dizin işlemi son aşamasında düzenleniyor çünkü BEGIN TRANSACTION gibi bir açık kullanıcı hareket içinde çevrimiçi dizin işlemi çalıştırdığınızda dikkatli olun...Blok taahhüt. Bu nedenle kullanıcı eşzamanlılık engelleyen hareket, sonuna kadar yapılacak kilidi neden olur.

Hareket günlük konuları

Büyük ölçekli dizin işlemleri, çevrimdışı gerçekleştirilen veya çevrimiçi hemen doldurmak işlem günlüğü neden olabilir veri yükleri oluşturabilir. Dizin işlemi tamamlanıncaya kadar dizin işlemi geri hareket alınması emin olmak için günlük fazlalıklar olamaz; Ancak, oturum dizin işlemi sırasında yedeklenebilir. Bu nedenle, işlem günlüğü dizini işlem süresi için dizin işlem hareketleri ve tüm eşzamanlı kullanıcı işlemleri depolamak için yeterli alan olması gerekir. Daha fazla bilgi için, bkz. Dizin işlemleri için işlem günlüğü Disk alanı.

İlişkili İçerik

Nasıl çevrimiçi dizin işlemleri çalışma

Çevrimiçi dizin işlemleri gerçekleştirme

ALTER INDEX (Transact-SQL)

Index (Transact-sql) oluştur