En los viejos tiempos, el uso de varchar
over char
era un gran no no, ya que varchar
estaba almacenado en una página diferente que el resto de la fila. ¿Sigue siendo el caso hoy con SQL Server 2008? ¿Veré alguna ganancia de memoria / rendimiento al cambiar 1-3 varchar(5)
columnas a char(5)
columnas en una tabla con
a) diga 2.000.000 de filas b) si alguna de las varchar
columnas forma parte de índices / las claves principales
sql-server
sql-server-2008
Carlo V. Dango
fuente
fuente
Respuestas:
Está confundiendo text / varchar (max) (tipos LOB) con varchar (n) / char (n)
De lo contrario, si usa char (1000) no varchar (1000) y la longitud promedio de los datos es, digamos, 42, este es un mal diseño y una gran cantidad de espacio desperdiciado.
fuente
Es difícil informarle sobre ganancias o resultados de rendimiento específicos sin saber más acerca de su esquema, pero en general desea definir el tipo de datos para que coincida con sus datos. Si necesita un ancho fijo (por ejemplo, sabe que siempre tendrá cinco caracteres), entonces debe usar char (5). Si tiene una cantidad variable de datos, entonces debe usar varchar (5).
Para SQL, cuantos más datos pueda incluir en una página, mejor será su rendimiento.
fuente
Hasta donde sé, SQL Server nunca ha almacenado tipos de datos varchar o nvarchar fuera de fila. Text y NText son diferentes. Hay unos pocos bits adicionales que se almacenan para una columna de ancho variable, pero eso es todo.
fuente