SQL Server - Definición correcta tamaño de campos y rendimiento

 
Vista:

Definición correcta tamaño de campos y rendimiento

Publicado por Camparinho (1 intervención) el 11/06/2009 11:07:04
Hola,

En un MSSQL 2005 tenemos la tabla "PEPITO". Dentro de esta tabla tenemos tres campos:

- Nombre: nvarchar("2000")
- Apellido: nvarchar("2000")
- Edad: bigint

Como podemos ver están definidos para contener grandcantidad de caracteres o un entero de un rango muy elevado.

Las entradas que yo realizo en esta tabla y en estos campos son:
- Juan,Martinez,32
- Elisa,Rodrigo,15
-Tamudo,Lloron,31

Como se puede ver no uso ni 2000 caracteres (ni los usare nunca para un nombre), ni usare un bigint (solo un integer con decenas i unidades).

La tabla i los campos están mal definidos eso esta claro. Mi pregunta es: ¿De que manera (tamaño, rendimiento...) afecta a mis consultas SELECT i a la BBDD en general el tener tablas definidas como el ejemplo (osea con rangos más altos del que voy a usar...)?

Thnks.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de roger

RE:Definición correcta tamaño de campos y rendimie

Publicado por roger (173 intervenciones) el 11/06/2009 15:20:18
a nivel de almacenamiento ocupa mucho espacio innecesario, y en tus consultas si que se debe ver el cambio, sobre todo si hay una gran cantidad de registros, pues el rendimiento de las operaciones de lectura y escritura son menores si tienes columnas que almacenan mayor cantidad de bytes, por ejemplo el bigint ocupa 8 bytes, mientras que un tinyint (que lo podrias utilizar para la edad) ocupa solo 1 byte, mira que la diferencia es muy grande si piensas en millones de registros.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar