Tenemos un registro primario que permite a los usuarios ingresar notas. Hay 18 campos de "notas" individuales para cada registro primario.Servidor SQL: ¿Es mejor usar varchar (MAX) o mantener una tabla de notas separada e INNER JOIN?
Actualmente lo hemos normalizado a otra tabla llamada notas, con una columna de clave externa ID y una sola columna varchar (8000), luego simplemente INNER ÚNALAS juntas según sea necesario. Creo que este fue el enfoque recomendado en SQL Server 2000.
Recientemente migramos a SQL Server 2008 que tiene varchar (MAX) y nos preguntamos si es mejor o igual para el rendimiento si nos deshacemos de nuestras notas separadas tabla y use varchar (MAX) en su lugar. Seguro que sería más conveniente.
Mi entendimiento es que varchar (MAX) mantiene los datos reales en una página separada, y solo mantiene un puntero a esa ubicación en la tabla actual. En otras palabras, SQL Server está haciendo internamente lo mismo que estábamos haciendo manualmente. Es eso incorrecto? De todas las respuestas, ciertamente suena como es, pero quería aclarar. Esa es realmente la pregunta que me estoy preguntando. – msigman
No; así era como funcionaba el tipo 'text'. Con 'varchar (max)', esto solo es cierto * cuando el tamaño excede el tamaño máximo de 'varchar' *, que es 8000. Dentro del tamaño máximo, se almacena de la manera tradicional. –
Entendido. Gracias, creo que ahora estoy claro. Lo dejaremos tal como está configurado actualmente. – msigman