Nasıl çevrimiçi dizin işlemleri çalışma
Bu konuda çevrimiçi dizin işlemi sırasında mevcut ve bu yapıları ile ilgili faaliyetler gösteren yapıların tanımlar.
Çevrimiçi dizin yapıları
Dizin veri tanım dili (ddl) işlemi sırasında eşzamanlı kullanıcı etkinliği için izin vermek için aşağıdaki yapıları çevrimiçi dizin işlemi sırasında kullanılır: kaynak ve preexisting dizinler, hedef, ve kümelenmiş dizinler için geçici eşleme dizini.
Kaynak ve preexisting dizinler
Özgün tablo veya kümelenmiş dizin veri kaynağıdır. Preexisting dizinler, kaynak yapısı ile ilişkili bir kümelendirilmemiş dizinler vardır. Örneğin, çevrimiçi dizin işlemi dört ve ilişkili bir kümelendirilmemiş dizinler içeren Kümelenmiş dizin yeniden oluşturma, kaynak varolan bir kümelenmiş dizini ve preexisting dizinler kümelendirilmemiş dizinler.
Preexisting dizinler eşzamanlı kullanıcı seç, Ekle, güncelleştirme ve silme işlemleri için kullanılabilir. Bu (desteklenir, ancak önerilmez) toplu ekler ve tetikleyiciler ve tutarlılığı kısıtlamaları tarafından örtülü güncelleştirmeleri içerir. Tüm preexisting dizinler sorguları ve aramalar için kullanılabilir. Bu, onlar olabilir sorgu en iyi duruma getiricisi tarafından seçilmiş ve, gerekirse dizin ipuçları içinde belirtilen anlamına gelir.
Hedef
Hedef veya hedefler yeni dizin (veya yığın) veya bir dizi yeni endeksler, yeniden oluşturulmuş ya da. Kullanıcı ekleme, güncelleştirme ve silme işlemleri için kaynak tarafından uygulandığını SQL Server Veritabanı Altyapısıdizin işlemi sırasında hedef. Çevrimiçi dizin işlemi bir kümelenmiş dizini yeniden oluşturuluyor, örneğin hedef yeniden Kümelenmiş dizin ise; Veritabanı Altyapısıne zaman bir kümelenmiş dizini yeniden kümelendirilmemiş dizinleri yeniden oluşturmak değil.
Hedef dizin dizin işlemi kararlıdır kadar select deyimleri işlerken arar değil. Dahili olarak, dizin salt okunur olarak işaretlenir.
Geçici eşleme dizini
Oluşturma, bırakın veya bir kümelenmiş dizini yeniden çevrimiçi dizin işlemleri, Ayrıca geçici eşleme dizini gerektirir. Bu geçici dizin tarafından eşzamanlı işlemler ne zaman temel tablo satırları güncelleştirildiğinde veya silindiğinde, oluşturulmakta yeni dizinleri silinecek kayıtları belirlemek için kullanılır. Bu kümelendirilmemiş dizin aynı adım yeni kümelenmiş bir dizin (ya da yığın) oluşturulur ve ayrı sıralama işlemi gerektirmez. Eşzamanlı işlemler de tüm onların ekleme, güncelleştirme ve silme işlemleri de geçici eşleme dizini korumak.
Çevrimiçi dizin etkinlikler
Dizinli tablo (yığın), kümelenmiş dizin oluşturma gibi bir basit çevrimiçi dizin işlemi sırasında kaynak ve hedef üç aşamalardan gidin: Hazırlık, yapı ve son.
Online ilk Kümelenmiş dizin oluşturma işlemi aşağıda gösterilmiştir. Kaynak nesne (yığın) diğer dizin vardır. Kaynak ve hedef yapısı aktiviteler her aşama için gösterilir; eşzamanlı kullanıcı seç, Ekle, güncelleştirme ve silme işlemleri de gösterilir. Hazırlık, yapı ve son aşama, her aşamasında kullanılan kilit modları ile birlikte gösterilir.
Kaynak yapısı aktiviteler
Aşağıdaki tabloda, her dizin işlemi ve karşılık gelen kilitleme stratejisini aşamasında kaynak yapıları ilgili etkinlikleri listeler.
Aşama |
Kaynak Aktivite |
Kaynak kilitleri |
---|---|---|
Hazırlık Çok kısa aşaması |
Yeni boş dizin yapısını oluşturmak için sistem meta verileri hazırlama. Tablo anlık tanımlanır. Başka bir deyişle, satır sürüm oluşturma, işlem düzeyi okuma tutarlılık sağlamak için kullanılır. Daha fazla bilgi için, bkz. Understanding Row Versioning-based Isolation Levels. Kaynak bilgisayarda eşzamanlı kullanıcı yazma işlemleri çok kısa bir süre için bloke edilir. Birden çok kümelendirilmemiş dizinler oluşturma dışında hiçbir eş zamanlı ddl işlemleri izin verilir. |
S (paylaşılan) üzerinde tablo * (Amacı paylaşılan) INDEX_BUILD_INTERNAL_RESOURCE ** |
Oluştur Ana Aşama |
Verileri taranan, sıralama, birleştirilmiş ve toplu yükleme işlemleri hedef takılı. Eşzamanlı kullanıcı seç, Ekle, güncelleştirme ve silme işlemleri preexisting dizinler hem inşa ediliyor herhangi bir yeni dizinler uygulanır. |
IS INDEX_BUILD_INTERNAL_RESOURCE ** |
Son Çok kısa aşaması |
Bu evre başlamadan önce tüm kaydedilmemiş güncelleştirme işlemleri tamamlamanız gerekir. Edinsel kilit bağlı tüm yeni kullanıcı okuma veya yazma işlemleri bu aşaması tamamlanıncaya kadar çok kısa bir süre için bloke edilir. Kaynak ile hedef değiştirmek için sistem meta verileri güncelleştirildi. Gerekirse, kaynak bırakılır. Örneğin, yeniden veya kümelenmiş dizin bırakarak sonra. |
INDEX_BUILD_INTERNAL_RESOURCE ** Tablo kümelendirilmemiş index.* oluşturma s sch-m (şema yapısı (dizin veya tablo) kaynağı herhangi bir modifikasyon) dropped.* olur |
* Dizin işlem kaydedilmemiş güncelleştirme hareketleri s kilit ya da tablo sch m kilidi alınıyor önce tamamlanmasını bekler.
** Dizin işlemi sürerken kaynak kilit INDEX_BUILD_INTERNAL_RESOURCE eşzamanlı veri tanım dili (ddl) işlemlerini kaynak ve preexisting yapıları yürütülmesini engeller. Örneğin, bu kilit aynı masada iki dizinler eşzamanlı yeniden engeller. Bu kaynak kilit Sch m kilidi ile ilişkili olsa da, veri denetleme deyimleri engellemez.
Önceki tabloyu içeren tek bir dizin çevrimiçi dizin işlemi inşa aşamasında alınan tek bir paylaşılan (s) kilit gösterir. Zaman kümelenmiş ve kümelendirilmemiş dizinler oluşturulmuş veya bir tek çevrimiçi dizin işlemi (örneğin, bir veya birden çok kümelendirilmemiş dizinler içeren bir tabloda ilk Kümelenmiş dizin oluşturma sırasında) yeniden iki kısa vadeli s kilitleri uzun vadeli paylaşılan amacını (IS) kilitleri tarafından izlenen inşa aşamasında alındı. Bir s kilit öncelikle Kümelenmiş dizin oluşturma ve kümelenmiş dizin oluşturma tamamlandığında kazanılır, kümelendirilmemiş dizinler oluşturmak için ikinci kısa vadeli s kilit kazanılır. Kümelendirilmemiş dizinler oluşturduktan sonra s kilit çevrimiçi dizin işlemi son aşaması kadar bir Is kilit döndürüldüğünü.
Hedef yapısı aktiviteler
Aşağıdaki tabloda, her dizin işlemi ve karşılık gelen kilitleme stratejisini aşamasında hedef yapısı gerektiren faaliyetleri.
Aşama |
Hedef etkinliği |
Hedef kilitleri |
---|---|---|
Hazırlık |
Yeni dizin oluşturulur ve salt yazılır olarak ayarlayın. |
IS |
Oluştur |
Veri kaynağından eklenir. Kaynağına uygulanan kullanıcı değişiklikler (ekler, güncelleştirmeler, siler) uygulanır. Bu, kullanıcı için saydam bir faaliyettir. |
IS |
Son |
Dizini meta verileri güncelleştirildi. Dizin durumu okuma olarak ayarlanır. |
S veya SCH-M |
Hedef dizin işlemi tamamlanıncaya kadar kullanıcı tarafından verilen select deyimleri tarafından erişilebilir değil.
Hazırlık ve son aşaması tamamlandıktan sonra sorgu ve güncelleştirme planları yordam önbelleğinde depolanan geçersiz kılınan. Sonraki sorguları yeni bir dizin kullanır.
Ömür boyu bir imleç bildirilen çevrimiçi dizin işlemi dahil olduğu bir tablo çevrimiçi dizin aşamaları ile sınırlıdır. Güncelleştirme imleçler her aşamasında geçersiz kılınan. Salt okunur imleçler yalnızca son aşama sonra geçersiz kılınan.