Kami memiliki basis data besar ini (> 1TB) yang kami maksudkan untuk "menyusut". Basis data berputar di sekitar satu entitas utama, sebut saja "Kunjungi". Untuk diskusi, katakanlah ini adalah basis data untuk praktik medis.
Ada total 30 "jenis" kunjungan, seperti prosedur, tahunan, tindak lanjut, imunisasi dll, yang masing-masing merupakan tabel tambahan untuk "Kunjungi", misalnya "visit_immuno".
Basis data telah mengakumulasikan sekitar 12 tahun data sejak tahun 2000. Seseorang telah mengusulkan agar kami menyimpan sekitar 3 tahun data dalam versi "live" dan sisanya tinggal dalam database "old_data". Tanggal HANYA disimpan dalam tabel "Kunjungan" karena dinormalisasi. Tabel Kunjungan juga berisi ROWVERSIONkolom dan kolom BIGINTidentitas palsu (berkerumun). Untuk semua maksud dan tujuan, katakanlah kunci pengelompokan diisi oleh SEQUENCE (SQL Server 2012 Enterprise) - kami akan menamainya cid.
Tidak visit.dateselalu dalam urutan yang sama dengan kunci pengelompokan, misalnya ketika seorang dokter melakukan kunjungan yang diperpanjang dan kembali dengan "koper" datanya, itu akan digabungkan ke dalam tabel utama. Ada juga beberapa pembaruan pada tabel "kunjungan" yang akan menyebabkan ROWVERSIONkolom tidak sinkron dengan kolom ciddan date- untuk membuatnya lebih sederhana, tidak ROWVERSIONjuga tidak cidakan membuat kunci partisi yang sesuai untuk alasan ini.
Aturan bisnis untuk menghapus data dari "langsung" adalah bahwa visit.dateharus lebih dari 36 bulan danvisit_payment catatan anak harus ada. Juga, database "old_data" tidak mengandung tabel dasar kecuali visit%.
Jadi kita berakhir dengan:
Live DB (penggunaan sehari-hari) - Semua tabel Data Lama DB - data lama untuk visit%tabel
Proposal membutuhkan DB Gabungan yang merupakan shell yang berisi Sinonim untuk SEMUA tabel dasar dalam Live DB(kecuali visit%) plus Tampilan yang UNION ALL di seluruh visit%tabel dalam dua database.
Dengan asumsi indeks yang sama dibuat di Old-DataDB, apakah kueri berkinerja baik di UNION-ALL Views ? Jenis pola kueri apa yang mungkin meningkatkan rencana pelaksanaan untuk Tampilan UNION-ALL ?