Consejo sobre Indices
Publicado por Jose (2 intervenciones) el 09/09/2005 18:49:52
Estamos claros que en SQL SERVER se pueden crear Indices, pero me salta una duda en lo siguiente:
Suponiendo que hago una busqueda de facturas de clientes por ID en un tramo de fechas y en una ciudad, como la siguiente cláusula
...
where Factura.ID=Mi_ID and
Factura.fecha >=20050101 and Factura.fecha<=20050131 and
Factura.Ciudad=13
Suponiendo que la tabla se llama FACTURA
¿Como me resulta más eficiente crea los indices?
A) Crear 3 indices : Uno por ID, uno por fecha y uno por ciudad.
¿SQL acelera la consulta invocando los 3 indices automáticamente (ya que los 3 campos indexados se utilizan en la consulta)?
Además, si por alguna razón necesito buscar por ID (en otra posible consulta) me seria útil el primero (viendo el punto de vista de asignarle una utilidad más extendida a la consulta en cuestión)...
B) Crear un indice compuesto: ID+FECHA+CIUDAD
Si bien este indice es util para esta consulta en específico ¿Me seria util si en otra consulta sólo busco por ID? o si cambio el orden de la consulta como se indica
...
where Factura.Ciudad=13 and
Factura.rut=RutMio and
Factura.fecha >=20050101 and Factura.fecha<=20050131
¿será tan eficiente o útil?
Agradeciendo sus consejos , me despido
Jose
Suponiendo que hago una busqueda de facturas de clientes por ID en un tramo de fechas y en una ciudad, como la siguiente cláusula
...
where Factura.ID=Mi_ID and
Factura.fecha >=20050101 and Factura.fecha<=20050131 and
Factura.Ciudad=13
Suponiendo que la tabla se llama FACTURA
¿Como me resulta más eficiente crea los indices?
A) Crear 3 indices : Uno por ID, uno por fecha y uno por ciudad.
¿SQL acelera la consulta invocando los 3 indices automáticamente (ya que los 3 campos indexados se utilizan en la consulta)?
Además, si por alguna razón necesito buscar por ID (en otra posible consulta) me seria útil el primero (viendo el punto de vista de asignarle una utilidad más extendida a la consulta en cuestión)...
B) Crear un indice compuesto: ID+FECHA+CIUDAD
Si bien este indice es util para esta consulta en específico ¿Me seria util si en otra consulta sólo busco por ID? o si cambio el orden de la consulta como se indica
...
where Factura.Ciudad=13 and
Factura.rut=RutMio and
Factura.fecha >=20050101 and Factura.fecha<=20050131
¿será tan eficiente o útil?
Agradeciendo sus consejos , me despido
Jose
Valora esta pregunta
0