Pregunta

Me acaba de pasar a leer la especificación máxima capacidad para SQL Server 2008 y vio a un máximo de 8060bytes por línea ? Lo que el ... Sólo 8 KB por fila permitido? (Sí, vi "de almacenamiento de desbordamiento de fila" manejo especial, estoy hablando de comportamiento estándar)

¿He mal algo aquí? Estoy seguro de que tengo, porque soy objetos binarios vi seguras con varios tamaños del MB almacena dentro de las bases de datos de SQL Server. Hace esto por línea significa realmente una fila de la tabla siniestra como en una fila, varias columnas?

Así que cuando tengo tres columnas nvarchar con cada 4000 caracteres allí (supongo tres documentos legales escritos en los cuadros de texto ...) -? Los asadores de servidores a cabo una advertencia

¿Fue útil?

Solución

Sí, obtendrá una advertencia en CREATE TABLE, un error en INSERT o UPDATE

tipos LOB (nvarchar (max), varchar (max) y varbinary (max) permiten 2GB-1 bytes que es la forma que le almacenar grandes cantidades de datos y es lo que se ha visto antes.

  • En un solo campo> 4000 caracteres / 8000 bytes que haría uso de nvarchar (max)

  • Para 3 x nvarchar (4000) en una fila que consideraría uno de:

    • mi diseño está mal
    • nvarchar (max) para uno o más columna
    • 1: tabla 1 niño para las columnas "menos pobladas"

Otros consejos

2008 manejará el desbordamiento mientras que en 2000, sino que simplemente se negaría a insertar un registro que se desbordó. Sin embargo, sigue siendo la mejor manera de diseñar con esto en mente, porque un número significativo de registros se desbordó podría causar algunos problemas de rendimiento en la consulta. En el caso que usted describe, puede ser que considere una tabla relacionada con una columna de tipo de documento, un gran campo para el documento y y una clave externa a la tabla intial. Sin embargo, si es unlikey que las tres columnas se llenarían en el mismo registro o en los valores máximos, a continuación, el diseño puede ser muy bien. Usted tiene que saber sus datos para determinar qué es lo mejor. Otra consideración es continuar a medida que tienen ahora hasta que haya problemas y luego reemplace con una mesa documento separado. Incluso se puede perfeccionar por cambiando el nombre de la tabla existente y crear uno nuevo y luego la creación de una vista con el nombre de tabla existente que extrae los datos de la nueva estructura. Esto podría mantener una gran cantidad de su código de romper aunque todavía tendría que ajustar ninguna de las declaraciones de inserción o actualización.

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