Navegador de Archivos
Calendario del Blog
General
Los detalles hacen la diferencia
- Ponerse o no desodorante.
- Poner o no poner una coma.
- Ponerle o no ponerle .... el siguiente texto a una frase =D
- Declarar una variable con un tipo de dato correcto
El caso de las bases de datos no es la excepción y en muchos casos suele traer graves consecuencias el no haber declarado una variable con el tipo de dato adecuado. Para ser más claro, si uno declara un campo de una tabla que será nvarchar en lugar de varchar, a simple vista esto no afecta porque ambos son de texto, ¿Pero que pasa si la tabla será de hechos? Osea que la tabla sea parte de un Data Warehouse y tenga miles de millones de registros y nosotros por simple weba/flojera/pereza/valemadrismo simplemente no tomamos en cuenta que tipo de dato declaramos ... y "adentro!". Después de unos meses nos damos cuenta que la tabla ocupa mucho espacio en disco.
Update: El contenido de este post aplica para SQL Server, los tipos de datos se emplean en la versión 2000, sin embargo el uso de VARCHAR(MAX) se incluye a partir de la version 2005 de SQL Server.
El problema no es solo un campo, el campo es uno de los problemas ya que cada campo está declarado como nvarchar(200). Tan solo hay que ver la diferencia entre varchar y nvarchar ... osea la "n" .. jaja >P. Veamos más a fondo el desmadre ocasionado:
Primero que nada quiero resaltar la finalidad de cada tipo de dato. El NVARCHAR tiene la finalidad de almacenar datos "unicode", estos datos son usados para multilenguaje y por tal motivo el espacio que almacena es doble al de varchar. Osea, si guardamos un carácter en un campo NVARCHAR usará el doble de espacio que si guardáramos el mismo caracter en un campo VARCHAR.
Un NVARCHAR es un campo -CHAR- de longitud VARiable uNicode (uNicode VARiable-length CHARacter string), como su nombre lo indica y que además puede tener un valor comprendido entre 1 y 4000. Mientras que un VARCHAR será de 1 a 8000 caracteres. Ambos pueden intentar usar el máximo de espacio para un tipo de datos como este empleando la declaración varchar(max) o nvarchar(max)
Para nvarchar(max) indica que el tamaño máximo de almacenamiento es 2^31-1 bytes. El tamaño de almacenamiento en bytes es dos veces el número de caracteres especificado + 2 bytes.
En varchar(max) aumenta hasta 2^31 el número máximo de caracteres que se pueden almacenar en este tipo de datos.
Es aquí donde tenemos los problemas con los detalles, si nosotros creamos una tabla con 24 campos y 20 de ellos son de texto, además le agregamos que declaramos cada campo con nvarchar(200). Cuando tenemos mil millones de registros. Como resultado tenemos espacio innecesario reservado en la base de datos (los 2 bytes por cada nvarchar).
20 * 200 * 1000 000 000 = Mucho espacio a lo wey!!
Luego entonces, por favor, seamos consientes de que lo que hacemos en un trabajo de este tipo tiene consecuencias a futuro y es nuestra responsabilidad hacerlo bien. Osea las mejores prácticas NO son un invento de weyes que no tenian tiempo, se hicieron para facilitar la vida, no para ejemplificar una utopia
En otras palabras... ya hay que hacer las cosas bien por favor y que se vea que realmente nos pagan por lo que hacemos.
Para saber más:
#2 Re: Los detalles hacen la diferencia
Ciertamente, gracias por la observación.
Actualizado ;-)!
Dejar un comentario
Estadísticas de visitantes








Comentarios Recientes
- Celulares con Wifi en Como escoger el amor de tu vida.
- master en La diferencia entre un amigo y un novio
- Iván Jaimes en Internet Explorer 8 y la vista compatibilidad
- mauro en Internet Explorer 8 y la vista compatibilidad
- Iván Jaimes en ¿Qué hacer para que te valoren más?
- marcela en ¿Qué hacer para que te valoren más?
- Iván Jaimes en
- karyot en Haces ruido o te gusta volar?
- Iver en Haces ruido o te gusta volar?
- leo_on en Haces ruido o te gusta volar?
- Iván Jaimes en Los detalles hacen la diferencia
- linuxman en Los detalles hacen la diferencia
- Marcelo Araújo en Internet Explorer 8 y la vista compatibilidad
- Iván Jaimes en Código con aroma de mujer
- karyot en Código con aroma de mujer
- Profesor Mamelowsky en Código con aroma de mujer
- karyot en Lo sabroso de la vida
- Iván Jaimes en
- Iván Jaimes en Internet Explorer 8 y la vista compatibilidad
- cordoba en Internet Explorer 8 y la vista compatibilidad

#1 Re: Los detalles hacen la diferencia
Solo te falta aclarar, ¿Se trata de MS SQL Server?