Bölümler veri alt kümeleri Yönet tasarlama

Bir tablo ya da dizin bölümleme tarafından hızla ve verimli bir şekilde kullanarak verilerin alt kümelerini taşıma Transact-SQL alter table...SWITCH deyim aşağıdaki şekillerde:

  • Zaten-varolan bir bölümü olarak bir tablo ekleme bölümlenmiş tablo.

  • Bir bölümü, bir geçiş bölümlenmiş tablo bir başka.

  • Tek bir tablo oluşturmak için bölümü kaldırma.

Bu senaryolar için yeni veri eklemek istediğinizde yararlı olabilir bir bölümlenmiş tablo ve aynı eski verileri kaldırma bölümlenmiş tablo düzenli olarak.Bu işlem, küçük ya da büyük miktarda veriyi çeşitli senaryolar içerebilir.Yüklenecek ekleyeceğiniz yeni veriler varsa iptal etti ya da dönüştürülmüş, ayrı bir varlık olarak bir bölümü olarak eklemeden önce ele alınabilir.Eski veri arşivlenmiyor veya warehoused.Nasıl büyük ya da küçük olursa olsun koleksiyon, bir ekleme içine select from deyim, verileri değil fiziksel olarak taşınır, aktarımı hızlı ve etkili, çünkü.Saklı yapılan bir bölümünden diğerine olduğu hakkında yalnızca meta veriler.

Örnek senaryo

Bölümleme bir senaryo altında AdventureWorks2008R2 örnek veritabanı, Adventure Works Cycles eski kendi verisinden arşivleri TransactionHistory için tablo bir TransactionHistoryArchive tabloya göre bölümler iki tablo arasında geçiş yapma.Bölümleme olarak bunu TransactionHistory , TransactionDate alan.Her bölüm için değerler aralık bir aydır.The TransactionHistory table maintains the year's most current transactions, while TransactionHistoryArchive maintains older transactions.Tarafından bölümleme bu şekilde tablolar, tek bir ayın yıl eski veri değerinde dan transfer edilebilir TransactionHistory için TransactionHistoryArchive aylık temele göre.

Her ay başlangıcında veri erken ay, þu anda TransactionHistory tablo arasında geçiş TransactionHistoryArchive tablosu.Bu görevi gerçekleştirmek için aşağıdaki olaylar gerçekleşir:

  1. The TransactionHistoryArchive table must have the same design schema as the TransactionHistory table.Yeni verileri almak üzere boş bir bölüm olmalıdır.Bu durum, TransactionHistoryArchive oluşur sadece iki bölüm bölümlenmiş tablo.Tüm veriler Eylül 2003'ten bir bölüm tutan ve tüm verileri Eylül 2003'ten bir bölüm tutan ve ileriye doğru.Bu son bölüm boş olur.

    Bölümleme geçişinden önce tabloların yapısı

  2. Bölüm işlev TransactionHistoryArchive tablo iki, yeni bölüm için Eylül 2003 verileri almak üzere tanımlanmış bölümleri ile boş bölümünü Böl şekilde değiştirilir.

    Bölümleme geçişinin ilk adımı

  3. İlk bölüm, TransactionHistory Eylül 2003 sırasında oluşturulan tüm verileri içeren tablo ikinci bölüme geçti TransactionHistoryArchive tablosu.Denetim kısıtlaması üzerinde tanımlanmalıdır Not TransactionHistory 1 Eylül'den önceki veri belirtmek için tablo (TransactionDate >= '9/01/2003').Bu sınırlama bölüm 1'sadece Eylül 2003 verileri içerir ve yalnızca, Eylül 2003 verileri tutan bölüme geçiş için hazır olduğundan emin olur TransactionHistoryArchive tablo.Ayrıca, ilgili tablolarıyla hizalı dizin bırakılan veya gerekir önce anahtarı devre dışı olduğunu unutmayın.Ancak, bunlar anahtarından sonra yeniden olabilir.Hakkında daha fazla bilgi için hizalama Bkz: bölümlenmiş dizinler Bölümlenmiş dizinler için özel yönergeleri.

    Bölümleme geçişinin ikinci adımı

  4. bölümleme işlev , TransactionHistory ilk iki bölümlerini tek bir bölüm birleştirmek için tablo değiştirilmiş.Bu bölüm, Bölüm 1, şimdi Ekim 2003'te oluşturulmuş tüm verileri içerir ve uygulamasına geçmek hazır TransactionHistoryArchive gelecek ay varolan denetimi sağlanan kısıtlaması değiştirilmiş Ekim 1'den önceki veri belirtmek için (TransactionDate >= '10/01/2003').

    Bölümleme geçişinin üçüncü adımı

  5. bölümleme işlev , TransactionHistoryArchive yeni eklenenler Eylül verileri içeren ikinci bölümünü, onun ilk bölüm ile birleştirmek için tablo yeniden değiştirilmiş.Bu eylem getirir TransactionHistoryArchive tablo için tüm verileri ilk bölümünü üstlenen ve ikinci bölümünü boş geri orijinal durumuna.

    Bölümleme geçişinin dördüncü adımı

  6. bölümleme işlev , TransactionHistory son bölümünü iki bölüm en geçerli ay önceki ayın ayrılır ve bölüm yeni veri almaya hazır olacak şekilde bölmek için tablo yeniden değiştirilmiş.

    Bölümleme geçişinin beşinci adımı

İçin bir Transact-SQL Bu senaryoyu uygulayan komut dosyasına bakın ReadMe_SlidingWindow örnek.Örnekleri hakkında daha fazla bilgi için bkz: SQL Server Örnekleri ve Örnek Veritabanlarının Yüklenmesiyle İlgili Önemli Noktalar.