Mamy tę dużą bazę danych (> 1 TB), którą zamierzamy „zmniejszyć”. Baza danych obraca się wokół jednej głównej jednostki, nazwijmy ją „Odwiedź”. Do dyskusji powiedzmy, że jest to baza danych praktyki medycznej.
Istnieje w sumie 30 „rodzajów wizyt”, takich jak procedura, coroczna, kontrolna, immunizacyjna itp., Z których każdy stanowi tabelę pomocniczą do „wizyty”, np. „Visit_immuno”.
Baza danych zgromadziła około 12 lat danych od 2000 r. Ktoś zaproponował, aby przechowywać około 3 lat danych w wersji „na żywo”, a resztę - w bazie danych „old_data”. Data jest przechowywana TYLKO w tabeli „Odwiedziny”, ponieważ jest znormalizowana. Tabela odwiedzin zawiera także ROWVERSION
kolumnę i kolumnę BIGINT
pseudo-tożsamości (klastrowaną). Dla wszystkich celów i założeń, powiedzmy, klucz klastrowania jest wypełniany przez SEKWENCJĘ (SQL Server 2012 Enterprise) - nazwiemy go cid
.
visit.date
Nie zawsze w tej samej kolejności, jako klucz grupowania, na przykład gdy lekarz idzie na dłuższych wizyt i zwrotów ze swojej „teczki” danych, zostaje włączony do głównej tabeli. Istnieją również pewne aktualizacje tabeli „odwiedzin”, które powodują, że ROWVERSION
kolumna nie jest zsynchronizowana zarówno z kolumnami, jak cid
i date
- po prostu, ani ROWVERSION
nie cid
stworzą odpowiednich kluczy partycji z tego powodu.
Zasadą biznesową usuwania danych z „na żywo” jest to, że visit.date
muszą one trwać dłużej niż 36 miesięcy ivisit_payment
musi istnieć rekord potomny . Ponadto baza danych „old_data” nie zawiera żadnych tabel podstawowych oprócz visit%
.
W rezultacie otrzymujemy:
Live DB (codzienne użytkowanie) - Wszystkie tabele Old-Data DB - starsze dane dla visit%
tabel
Propozycja wymaga połączonej bazy danych, która jest powłoką zawierającą synonimy dla WSZYSTKICH tabel bazowych Live DB
(oprócz visit%
) oraz widoków, które UNIONUJĄ WSZYSTKO w visit%
tabelach w dwóch bazach danych.
Zakładając, że te same indeksy są tworzone w Old-Data
DB, będzie dobrze wykonywać zapytania o Unii wszystko Wyświetleń ? Jakiego rodzaju wzorce zapytań mogą wyzwolić plan wykonania dla widoków UNION-ALL ?