duda respecto a indices naturales y artificiales

12/08/2007 - 19:47 por Dany | Informe spam
Amigos, estoy iniciando un proyecto en una empresa pero estoy en una duda respecto a dos tablas de
la BD que tienen alto grado de transacionabilidad y a la vez consultada constantemente.
Son dos tablas que conformar Maestro - Detalle de las cuales la tabla maestro va a contener un
aproximado de 200,000 registros anuales y el detalle va a contener algo de 30 lineas promedio por
cada linea en la cabecera esto nos da una aproximado de 6,000,000 registro en esta tabla de detalle.

Estuve pensando generar un primary Key por dos campos en las dos tablas que seria Año+NroTransaccion
(Char 4 + char(6)) y a la vez estos serian sus campos relacionables pero, lei tambien un articulo en
portalsql respecto al tema de los indices naturales vs indices artificiales donde comentaban que
tener un campo entero como primary key seria mucho mas optimo que hacerlo mediante los indices
compuestos.

Que me recomiendan Uds. por las experiencias que tienen.

si usar un indice simple con campo entero o seguir usando los clasicos indices compuestos???

cual Join seria mas rapido Año+nrotransaccion o Solamente nrotransaccion???

Gracias

Dany Acosta.

Preguntas similare

Leer las respuestas

#6 Carlos Sacristan
13/08/2007 - 16:20 | Informe spam
Si la estrategia de indexación es la adecuada, con ese volumen de datos
no deberías tener problemas de rendimiento.

Ahora, es como todo. Evidentemente el rendimiento bajará si tienes
activadas las reglas que garantizan la integridad referencial que si no las
tienes, pero claro, a cambio tienes garantizado justamente eso: que los
datos son "íntegros". Además, si no lo haces en la base de datos, ¿lo vas a
hacer en la aplicación (seguro que más lento) o directamente no vas a
validar los datos (riesgo de inconsistencias)... hay veces que no tienes más
opciones que ceder un poco en el aspecto de rendimiento para ganar a cambio
otras cosas.

Y para concluir, te aseguro que antes de recurrir a quitar la integridad
de la base de datos para ganar rendimiento hay opciones mucho mejores con
las que conseguirás mayores beneficios.


"Dany" escribió en el mensaje
news:
Otra consulta mas, si deseo activar los Constraint FK de las tablas
maestro - detalle con las otras tablas relacionadas... a ese volumen de
datos bajaria el rendimiento???



Dany wrote:
Amigos, estoy iniciando un proyecto en una empresa pero estoy en una duda
respecto a dos tablas de la BD que tienen alto grado de
transacionabilidad y a la vez consultada constantemente.
Son dos tablas que conformar Maestro - Detalle de las cuales la tabla
maestro va a contener un aproximado de 200,000 registros anuales y el
detalle va a contener algo de 30 lineas promedio por cada linea en la
cabecera esto nos da una aproximado de 6,000,000 registro en esta tabla
de detalle.

Estuve pensando generar un primary Key por dos campos en las dos tablas
que seria Año+NroTransaccion (Char 4 + char(6)) y a la vez estos serian
sus campos relacionables pero, lei tambien un articulo en portalsql
respecto al tema de los indices naturales vs indices artificiales donde
comentaban que tener un campo entero como primary key seria mucho mas
optimo que hacerlo mediante los indices compuestos.

Que me recomiendan Uds. por las experiencias que tienen.

si usar un indice simple con campo entero o seguir usando los clasicos
indices compuestos???

cual Join seria mas rapido Año+nrotransaccion o Solamente
nrotransaccion???

Gracias

Dany Acosta.

Respuesta Responder a este mensaje
#7 Dany
13/08/2007 - 17:49 | Informe spam
Ok.. Gracias a todos por los consejos...


Dany wrote:
Amigos, estoy iniciando un proyecto en una empresa pero estoy en una
duda respecto a dos tablas de la BD que tienen alto grado de
transacionabilidad y a la vez consultada constantemente.
Son dos tablas que conformar Maestro - Detalle de las cuales la tabla
maestro va a contener un aproximado de 200,000 registros anuales y el
detalle va a contener algo de 30 lineas promedio por cada linea en la
cabecera esto nos da una aproximado de 6,000,000 registro en esta tabla
de detalle.

Estuve pensando generar un primary Key por dos campos en las dos tablas
que seria Año+NroTransaccion (Char 4 + char(6)) y a la vez estos serian
sus campos relacionables pero, lei tambien un articulo en portalsql
respecto al tema de los indices naturales vs indices artificiales donde
comentaban que tener un campo entero como primary key seria mucho mas
optimo que hacerlo mediante los indices compuestos.

Que me recomiendan Uds. por las experiencias que tienen.

si usar un indice simple con campo entero o seguir usando los clasicos
indices compuestos???

cual Join seria mas rapido Año+nrotransaccion o Solamente nrotransaccion???

Gracias

Dany Acosta.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida