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

¿Cómo se almacenan los valores varchar en una base de datos de SQL Server?

Restricción completamente inútil por lo que puedo ver. Suponiendo FixedVar estándar formato (a diferencia de los formatos utilizados con la compresión de filas/páginas o columnas dispersas) y asumiendo que está hablando de varchar(1-8000) columnas

Todo varchar los datos se almacenan al final de la fila en una sección de longitud variable (o en páginas fuera de línea si no caben en la fila). La cantidad de espacio que consume en esa sección (y si termina o no fuera de la fila) depende completamente de la longitud de los datos reales, no de la declaración de la columna.

SQL Server utilizará la longitud declarada en la declaración de la columna al asignar memoria (por ejemplo, para sort operaciones). La suposición que hace en ese caso es que varchar las columnas serán llenadas a 50% de su tamaño declarado en promedio así que esto podría ser una mejor opción a tener en cuenta al elegir una talla.