sql >> Base de Datos >  >> RDS >> Sqlserver

Particionamiento por año frente a tablas separadas denominadas Data_2011, Data_2010, etc.

Desde una perspectiva interna, los métodos son esencialmente los mismos.

Detrás de escena, cuando crea una partición basada en fechas, el motor SQL crea tablas físicas separadas para cada partición, luego hace lo que es básicamente una UNION cuando consulta la tabla en sí.

Si usa un filtro en su consulta en la tabla particionada que corresponde a su campo de partición (DateField digamos), entonces el motor puede ir directamente a la partición que necesita para los datos. De lo contrario, busca cada tabla física en la tabla lógica según sea necesario para completar la consulta.

Si sus consultas implicarán un filtro de fecha (que parece que lo harán a partir de su pregunta), entonces no puedo pensar en ninguna ventaja para su método "personalizado".

Esencialmente, la elección que debe hacer es ¿quiere ser responsable de toda la lógica y los casos extremos involucrados en la partición, o confiar en los desarrolladores de Microsoft que han estado haciendo esto durante décadas para que lo hagan por usted?

Para mis propios fines, si hay un marco integrado para algo que quiero hacer, siempre trato de usarlo. Es invariablemente más rápido, más estable y menos propenso a errores que una solución "roll-your-own".