viernes, 5 de agosto de 2016

Diseñar particiones para administrar subconjuntos de datos

SQL Server

https://technet.microsoft.com/es-es/library/ms191174(v=sql.105).aspx

Diseñar particiones para administrar subconjuntos de datos


SQL Server 2008 R2

Si crea particiones de una tabla o un índice, puede mover subconjuntos de datos de forma rápida y eficaz con la instrucción Transact-SQL ALTER TABLE...SWITCH de las maneras siguientes:
  • Puede agregar una tabla como partición a una tabla con particiones ya existente.
  • Puede cambiar una partición de una tabla con particiones a otra.
  • Puede quitar una partición para crear una sola tabla.
Estos escenarios pueden resultar útiles si desea agregar nuevos datos a una tabla con particiones y quitar datos antiguos de la misma tabla con particiones de forma regular. Esta operación puede implicar grandes o pequeñas cantidades de datos en diferentes escenarios. Si los nuevos datos que agrega deben cargarse, limpiarse o transformarse, se pueden tratar como una entidad independiente antes de agregarlos como una partición. Los datos antiguos se pueden archivar o guardar en el almacén. Independientemente del tamaño de la colección, la transferencia es rápida y eficaz ya que, a diferencia del caso de una instrucción INSERT INTO SELECT FROM, los datos no se mueven físicamente. Solo cambian de una partición a otra los metadatos relativos a la ubicación del almacenamiento.

Caso de ejemplo


En el escenario de particiones de la base de datos de ejemplo AdventureWorks2008R2, Adventure Works Cycles archiva sus datos antiguos de la tablaTransactionHistory en una tabla TransactionHistoryArchive; para ello, traslada las particiones de una tabla a otra. Esto se lleva a cabo mediante la creación de particiones de TransactionHistory en el campo TransactionDate. El intervalo de valores de cada partición es un mes. La tabla TransactionHistory conserva las transacciones actuales del año y TransactionHistoryArchive guarda las transacciones anteriores. Al crear las particiones de las tablas de esta forma, los datos antiguos del año correspondientes a un mes se pueden transferir mensualmente de TransactionHistory a TransactionHistoryArchive.