"Küçültmek" istediğimiz bu büyük veri tabanımız (> 1 TB) var. Veritabanı bir ana varlık etrafında döner, buna "Ziyaret" diyelim. Tartışma için, bunun tıbbi bir uygulama için bir veritabanı olduğunu varsayalım.
Her biri "Ziyaret" için bir alt tablo olan, örneğin "ziyaret_immuno" olmak üzere, prosedür, yıllık, takip, bağışıklama vb. Gibi toplam 30 ziyaret "tipi" vardır.
Veritabanı 2000 yılından bu yana yaklaşık 12 yıllık veri biriktirmiştir. Birisi "canlı" versiyonda yaklaşık 3 yıllık veri tutmamızı ve gerisini "old_data" veritabanında yayınlamayı önermiştir. Tarih SADECE normalleştirildiği için "Ziyaret" tablosunda saklanır. Ziyaret tablosu ayrıca bir ROWVERSIONsütun ve BIGINTsahte kimlik (kümelenmiş) sütun içerir. Tüm niyetler ve amaçlar için, kümeleme anahtarının bir SEQUENCE (SQL Server 2012 Enterprise) tarafından doldurulduğunu varsayalım - buna ad vereceğiz cid.
Her visit.datezaman kümeleme anahtarıyla aynı sırada değildir, örneğin bir doktor genişletilmiş ziyaretlere gittiğinde ve onun "evrak çantası" ile döndüğünde, ana tabloya birleştirilir. "Ziyaret" tablosunda, ROWVERSIONsütunun hem cidve hem de datesütunlarla senkronize olmamasına neden olacak bazı güncellemeler de vardır - basitçe söylemek gerekirse, bu nedenle ROWVERSIONne ciduygun bölme anahtarları ne de yapar.
"Canlı" veri kaldırmanın iş kuralı, visit.date36 aydan uzun olması ve bir alt visit_paymentkayıt bulunması gerektiğidir. Ayrıca, "old_data" veritabanı dışında temel tabloları içermez visit%.
Sonuç olarak:
Canlı DB (günlük kullanım) - Tüm tablolar Eski Veri DB - visit%tablolar için eski veriler
Teklif , iki veritabanındaki tablolar arasında BİRLİKTE TÜM temel tablolarda (hariç ) artı Görünümler içinde TÜM taban tablolara Eş Anlamlılar içeren bir kabuk olan bir Kombine DB'yi çağırır .Live DBvisit%visit%
DB'de aynı dizinlerin oluşturulduğu varsayıldığında, Old-Datasorgular UNION-ALL Görünümlerinde iyi performans gösterecek mi? UNION-ALL Views için yürütme planını ne tür sorgu modelleri tetikleyebilir ?