¿Puedo dividir una única tabla de SQL 2008 DB en varios grupos de archivos, basado en una columna de discriminador?

StackOverflow https://stackoverflow.com/questions/4675218

  •  10-10-2019
  •  | 
  •  

Pregunta

Tengo una base de datos SQL Server 2008 R2 que tiene un número de mesas. Dos de estas tablas contiene una gran cantidad de grande de datos .. sobre todo porque uno de ellos es VARBINARY(MAX) y la mesa hermana es GEOGRAPHY. (¿Por qué dos tablas? Lea a continuación si está interesado ***)

Los datos de estas tablas son formas geoespaciales, tales como límites de código postal.

Ahora, los primeros 70K filas impares son para DataType = 1 las filas resto 5mil son para DataType = 2

Ahora bien, ¿es posible dividir los datos de la tabla en dos archivos? por lo que todas las filas que están a la DataType != 2 entra en File_A y DataType = 2 entra en File_B?

De esta manera, cuando la copia de seguridad de la base de datos, puedo omitir la adición de File_B así que mi descarga es muuuuchas más pequeño? ¿Es esto posible?


Me supongo que podría estar pensando -> ¿por qué no mantenerlos como dos mesas adicionales? Sobre todo porque en el código, los datos son conceptualmente los mismos .. Es simplemente sucede que quiero dividir el almacenamiento de estos datos modelo. Realmente estropea mi modelo si ahora cómo dos agregados en mi modelo, en lugar de uno.

*** Marco de la entidad no le gusta Tablas con GEOGRAPHY, así que tengo que crear una nueva tabla que transforma la GEOGRAPHY a VARBINARY y, a continuación, colocar eso en EF.

¿Fue útil?

Solución

Es un poco excesivo, pero se puede usar Paritioning mesa para hacer esto, ya que cada partición se puede asignar a un grupo de archivos distinto. Algunas advertencias:

  • La partición de tablas sólo está disponible en Enterprise (y revelador) edición
  • Como índices agrupados, sólo tienes una, así que asegúrese de que esta es la forma en que le desea particionar las tablas
  • No estoy seguro de lo bien que jugaría en contra de "copias de seguridad selectivas" o, mucho más importante, las restauraciones parciales. Lo que quiere probar un montón de excéntricos escenarios de recuperación antes de ir a la producción con este

Una forma más vieja-moda para hacerlo sería la creación de vistas con particiones. Esto le da dos tablas, es cierto, pero la "estructura" vista con particiones es bastante sólido y bastante elegante, y no tendría que preocuparse de tener sus datos divididos en varios archivos de copia de seguridad.

Otros consejos

Creo que es posible que desee ver en partición de datos . Puede particionar los datos en varios grupos de archivos, y por lo tanto los archivos, sobre la base de un valor clave, como su columna Tipo de datos.

Particionamiento de datos también puede ayudar con el rendimiento. Por lo tanto, si necesita que también se puede extraer esquemas de partición para sus índices también.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top