¿Cómo se decidió si se usaron nvarchar
o nchar
?nchar vs nvarchar rendimiento
Por ejemplo he notado que la base de datos de miembros predeterminada creada por el proveedor sqlmembership declara la columna de correo electrónico a ser de tipo nvarchar (256)
Para mí que parece una innecesariamente grande valor máximo de una columna de correo electrónico. Sospecho que, en circunstancias normales, los correos electrónicos de más de 40 o 50 caracteres serían bastante raros.
Pero, dado que los datos como las direcciones de correo electrónico varían en longitud, ¿siempre se deben almacenar como nvarchar para eliminar el espacio redundante?
Si usa nvarchar para una columna de correo electrónico. En el caso de que se cambie una dirección de correo electrónico, si el nuevo correo electrónico es más largo que el correo electrónico anterior, ¿esto causará muchas divisiones de páginas y, por lo tanto, gran parte de un costo de rendimiento?
¿Alguna vez consideraría utilizar nchar (40) para una dirección de correo electrónico y comprometería la pérdida de espacio de almacenamiento a cambio de que no haya costos de rendimiento de división de página?
¿O el uso de nchar (40) aumentaría significativamente el tamaño de la base de datos provocando así otros impactos de rendimiento en la velocidad de la consulta?
¿Utilizaría nchar solo cuando sepa el tamaño de los datos para completar la columna? ¿Sería una regla razonable a seguir?
Típicamente, cualquier cosa más corto de 5-10 caracteres (como por ejemplo símbolos de moneda 'USD',' GBP' etc., o por ejemplo, los estados de EE.UU. 'AZ',' ME' etc.) tiene sentido utilizar el ancho fijo 'CHAR (x) 'o' NCHAR (x) 'tipos. Para cualquier cosa más allá de eso, siempre tomo las cadenas de longitud variable - la sobrecarga de 2 bytes para 'varchar' son bien vale la pena, si usted tiene un VARCHAR (255)' y la mayoría de las entradas son sólo el 40-50 caracteres de largo .. –