У нас є ця велика база даних (> 1 ТБ), яку ми маємо намір "скоротити". База даних обертається навколо однієї основної сутності, назвемо її "Відвідати". Для обговорення скажімо, що це база даних для медичної практики.
Всього існує 30 типів візитів, таких як процедура, щорічні, подальші спостереження, імунізація тощо, кожен з яких є допоміжною таблицею для "відвідування", наприклад, "visit_immuno".
База даних накопичила приблизно 12 років даних з 2000 року. Хтось запропонував нам тричі три роки зберігати дані у "живій" версії, а решта жити у базі даних "old_data". Дата ТОЛЬКО зберігається в таблиці "Відвідування", оскільки вона нормалізується. Таблиця відвідувань також містить ROWVERSION
стовпчик та BIGINT
псевдо-ідентичність (кластер). Скажімо, для всіх намірів і цілей, скажімо, що кластеризаційний ключ заповнений SEQUENCE (SQL Server 2012 Enterprise) - ми його назвемо cid
.
Це visit.date
не завжди в тому ж порядку, що і клавіш кластеризації, наприклад, коли лікар відвідує розширені візити та повертається зі своїм "портфелем" даних, він об'єднується в основну таблицю. Також є кілька оновлень таблиці "візит", які призведуть до того, що ROWVERSION
стовпець не синхронізується як із стовпцями, так cid
і зі date
стовпцями - простіше кажучи, з цього приводу не робиться ROWVERSION
і cid
відповідних ключів розділу.
Ділове правило для видалення даних із "прямого" є те, що кількість людей visit.date
повинна перевищувати 36 місяців, аvisit_payment
запис про дітей повинен існувати. Крім того, база даних "old_data" не містить жодної базової таблиці, за винятком visit%
.
Отже, ми закінчуємо:
Жива БД (щоденне використання) - Усі таблиці БД старих даних - старі дані для visit%
таблиць
Пропозиція вимагає створення комбінованої БД, яка є оболонкою, що містить синоніми до ВСІХ базових таблиць Live DB
(крім visit%
), а також перегляди, які ОБ'ЄДНУЮТЬ ВСІ в visit%
таблицях у двох базах даних.
Припускаючи , що одні і ті ж індекси , які створюються в Old-Data
БД, будуть запити добре виконувати на UNION-ALL Переглядів ? Який типу шаблонів запитів може підніжку плану виконання для UNION-ALL Переглядів ?