SQL - Duda de indices

 
Vista:

Duda de indices

Publicado por troubleShoot (1 intervención) el 03/01/2008 14:38:20
Hola bueno tengo una gran duda sobre como SQL realiza una busqueda dentro de una tabla con mas de un indice.

Osea como SQL selecciona el indice adecuado para relaizar una consulta optima.

º~º espero alguien tenga la respuesta a mi gran duda existencial.

desde ya muchas gracias
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

RE:Duda de indices

Publicado por Franklin Gamboa (15 intervenciones) el 03/01/2008 17:06:04
Buenas.

La base de datos, realmente no entiende SQL, ella tiene un analizador sintactico (igual que los compiladores) qwue convierte el SQL en algebra relacional; una vez que tiene esto, pasa por un motor de optimización, el cual se encarga de realizar el plan de ejecución y de seleccionar los indices que la base de datos de utilizar, en este momento él selecciona el índice de acuerdo a las clausulas where (si existen); por ejemplo, si vas a obtener el registro con el id 500 siendo el id la llave primaria no tiene sentido hacer un table scan hasta llegar al 500 si existe un índice que permitiría hacer que dure menos; de igual manera, si tengo que hacer un select *, no tiene sentido usar indices si igual hay que hacer un table scan.

Si filtro por un campo que no tiene índice, la base de datos se ve obligada a hacer un table scan y separar en memoria un registro del otro, dependiendo si debe mostrsr

Espero haber aclarado tu duda.

Saludos,

Franklin Gamboa
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

RE:Duda de indices

Publicado por Isaias (5072 intervenciones) el 03/01/2008 17:33:58
Seria bueno adicionar a tu comentario, que SQL SERVER de Microsoft, maneja unos estadisticos, que llevan el performance de respuesta, segun el indice ocupado y hace uso de estos estadisticos para tomar la decision sobre el mejor indice.
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