Tenemos esta gran base de datos (> 1TB) que pretendemos "reducir". La base de datos gira en torno a una entidad principal, llamémosla "Visita". Para la discusión, digamos que es una base de datos para una práctica médica.
Hay un total de 30 "tipos" de visita, como procedimiento, anual, seguimiento, inmunización, etc. Cada uno de ellos es una tabla secundaria para "Visita", por ejemplo, "visit_immuno".
La base de datos ha acumulado unos 12 años de datos desde 2000. Alguien ha propuesto que mantengamos unos 3 años de datos en la versión "en vivo" y que el resto viva en una base de datos "old_data". La fecha SOLO se almacena en la tabla "Visita" ya que está normalizada. La tabla Visita también contiene una ROWVERSIONcolumna y una columna BIGINTde pseudoidentidad (agrupada). Para todos los efectos, supongamos que la clave de agrupación está poblada por una SECUENCIA (SQL Server 2012 Enterprise): la nombraremos cid.
El visit.dateno es siempre en el mismo orden que la clave de agrupación, por ejemplo, cuando un médico va en las visitas extendidas y regresa con su "maletín" de datos, que se combinó en la tabla principal. También hay algunos cambios a la tabla "visita" que hará que la ROWVERSIONcolumna que se va fuera de sincronía con los dos cidy datecolumnas - en pocas palabras, ni ROWVERSIONtampoco cidharían claves de partición adecuados para ello.
La regla empresarial para eliminar datos de la "vida" es que visit.datedebe ser mayor de 36 meses yvisit_payment debe existir un registro secundario . Además, la base de datos "old_data" no contiene ninguna de las tablas base, excepto visit%.
Entonces terminamos con:
Live DB (uso diario): todas las tablas DB de datos antiguos: datos anteriores para las visit%tablas
La propuesta requiere una base de datos combinada que sea un shell que contenga sinónimos para TODAS las tablas base en Live DB(exceptovisit% ) más Vistas que UNIONEN TODAS en las visit%tablas en las dos bases de datos.
Suponiendo que se crean los mismos índices en la base de Old-Datadatos, ¿las consultas funcionarán bien en las vistas UNION-ALL ? ¿Qué tipo de patrones de consulta podrían disparar el plan de ejecución para UNION-ALL? vistas ?