Aracılığıyla paylaş


Verilerin alt kümelerini yönetme, bölümleri tasarlama

Bir tablo ya da dizin bölümleme ile hızlı ve verimli şekilde kullanarak veri alt kümelerine taşıyabilirsinizTransact-SQLALTER TABLE... anahtar deyim aşağıdaki yöntemlerle:

  • Bir 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 diğerine.

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

Bu senaryolar, yeni verileri eklemek istediğinizde yararlı olabilir bir bölümlenmiş tablo ve eski veri aynı bölümlenmiş tablo düzenli olarak.Bu işlem, büyük veya küçük miktarlarda veri çeşitli senaryolar içerebilir.Yüklenecek eklediğiniz yeni veriler varsa, scrubbed ve dönüştürülmüş, bunu ayrı bir varlık bir bölümü olarak eklemeden önce ele alınabilir.Eski veri arşivlenmiş warehoused veya.INSERT INTO SELECT FROM deyim, verileri değil fiziksel olarak taşınır, nasıl büyük veya küçük olursa olsun, koleksiyon transfer hızlı ve verimli çünkü.Saklı yapılan bir bölümünden diğer olduğu hakkında yalnızca meta.

Örnek senaryo: AdventureWorks

Bölümleme senaryo altındaAdventureWorksörnek veritabanı,Adventure Works Cycles, eski verileri arşivleriniTransactionHistoryTransactionHistoryArchive tablo bölümleri iki tablo. arasında geçiş olarak tabloya Bu bölümleme yaptıklarınıTransactionHistoryTransactionDate alan.Bir ay her bölüm için değer aralığıdır.The TransactionHistory table maintains the year's most current transactions, while TransactionHistoryArchive maintains older transactions.Bölümleme tabloları bu şekilde tarafından tek bir ayın değerini yıl eski veri transfer gelenTransactionHistory , bir aylık temel. TransactionHistoryArchive

Her ayın başında, verinin ilk ayı olan şu anda daTransactionHistory tablo geçmiş için TransactionHistoryArchive tablo. 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.Ayrıca yeni verileri almak için boş bir bölüm olmalıdır.Bu durumda,TransactionHistoryArchive oluşan iki bölüm. bölümlenmiş bir tablodur Eylül 2003'ten önce tüm verileri bir bölüm tutan ve tüm verileri Eylül 2003'ten başka bir bölüme sahiptir ve onward.Bu son bölüm yok.

    Structure of tables before partitioning switching

  2. bölümleme işlevi,TransactionHistoryArchive tablo içinde bir yeni bölüm için Eylül 2003 veri almak üzere tanımlanmış bölümleri olarak iki boş bölümünü ayırmak için değiştirilir.

    First step of partitioning switching

  3. İlk bölümünüTransactionHistory Eylül 2003 sırasında oluşturulan tüm verileri içeren tablo , TransactionHistoryArchive tablonun ikinci bölümü değiştirdi., Denetim kısıtlamasını tanımlanması gereken NotTransactionHistory tablo veri 1 Eylül'den önceki belirtmek için ( TransactionDate >= '9/01/2003').Bu sınırlama, bölüm 1 Eylül 2003 yalnızca verileri içerir ve yalnızca, Eylül 2003 verileri tutan bölümü geçmiş için hazır olduğundan emin olurTransactionHistoryArchive tablo.Ayrıca, ilgili tablolarıyla hizalanmış bir dizin olmalı bırakılan veya önceki anahtar devre dışı olduğunu unutmayın.Ancak, bunlar anahtardan sonra yeniden olabilir.Bölümlenmiş dizinler, hizalama hakkında daha fazla bilgi için bkz:Bölümlenmiş dizinler için özel yönergeleri.

    Second step of partitioning switching

  4. Bölüm işleviniTransactionHistory tablo, ilk iki bölüm birleştirilecek bir tek bölüm. ile değiştirilir 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ırTransactionHistoryArchive gelecek ay, varolan denetimi sağlanan kısıtlama değiştirilen veri Ekim-1'den önceki belirtmek için ( TransactionDate >= '10/01/2003').

    Third step of partitioning switching

  5. bölümleme işlevi,TransactionHistoryArchive tablo yalnızca eklenen, onun ilk bölümü. ile Eylül verileri içerir, ikinci bölümü birleştirmek için yeniden değiştirilir Bu eylem getirirTransactionHistoryArchive tablo, ilk bölüm tüm verileri içerir ve boş., ikinci bölüm ise, özgün durumuna geri

    Fourth step of partitioning switching

  6. Bölüm işleviniTransactionHistory tablo yeniden son bölümünü en son ayı önceki ayın ayrılır ve bölümü yeni verileri almak hazır olacak şekilde iki bölüme ayırmak için değiştirilir.

    Fifth step of partitioning switching

TamamlandıTransact-SQLBu senaryoyu gerçekleştirmek için komut dosyası konumunda bulunabilirReadMe_SlidingWindow.