Duda con el optimizador de índices.

08/02/2004 - 19:46 por Víctor | Informe spam
Hola.

Tengo una dudilla de cómo trabaja el optimizador de índices.

En el Analizador de consultas escribo una consulta, y entonces ejecuto el
optimizador. Le quito que mantenga los índices existentes, que utilize las
vistas indexadas, y un análisis exhaustivo. En la caraga de trabajo, dejo la
que hay por defecto (selección del Analizador de consultas SQL), y en las
tablas, marco las que utilizao en la consulta.

Lo he probado con dos consultas diferentes, y en una me dice que ponag un
índice, y en la segunda que lo quite. ¿Puede ser eso?

Otra pregunta: supongo que la propuesta no es la mejore de todo todito,
porque a mi se me ha ocurrido un indice que ha hecho que una consulta pase
de 9' a 2'.

Una última consulta: al lanzar el plan de ejecución, la primera frase pone:
"costo de la consulta (en relación al proceso de lotes): 100%"
supongo que cuanto más bajo es el %, mejor, ¿no?

Muchas gracias.

Preguntas similare

Leer las respuestas

#1 Maximiliano d. Accotto
08/02/2004 - 19:57 | Informe spam
Victor:

mira el asistente en principio lo que hace es un analisis teorico (si lo
configuras como vos decis) de lo que podria mejorar en esa consulta, por lo
cual esto varia de Consulta en consulta y es muy probable que una necesite
un indice y la otra no.

Esto tambien si quieres lo puedes no hacer sobre una consulta en si sino
sobre la carga real del servidor (esto lo podrias capturar por ej durante
todo un dia,semana o lo que te guste y luego en otro servidor hacer los
cambios de tunnig)

Lo que debes ver en el plan de ejecucion basicamente es:

Que no haga Scan (Table Scan,index Scan) un Scan es ir registro por registro
y comparar con lo que buscas, por lo cual es donde mas se demora la cosa, lo
que debes buscar es que haga Seek.

Otra cosa que debes ver es el tiempo empleado por el CPU (ojo que esto puede
variar dependiendo del Servidor)
Otra cosa tambien son las I/O, esto te puede dar una idea tambien.

Con estas cosas podras asegurarte buenos rendimientos quizas.

Si te interesa ver un poco mas podrias revisar este link:

www.portalsql.com, donde encontraras una serie de Articulos muy interesantes
sobre dicho tema. Tambien puedes ir a la pagina de Microsoft donde se
encontrara mucha informacion.

Salu2

Maxi





"Víctor" escribió en el mensaje
news:quvVb.3248063$
Hola.

Tengo una dudilla de cómo trabaja el optimizador de índices.

En el Analizador de consultas escribo una consulta, y entonces ejecuto el
optimizador. Le quito que mantenga los índices existentes, que utilize las
vistas indexadas, y un análisis exhaustivo. En la caraga de trabajo, dejo


la
que hay por defecto (selección del Analizador de consultas SQL), y en las
tablas, marco las que utilizao en la consulta.

Lo he probado con dos consultas diferentes, y en una me dice que ponag un
índice, y en la segunda que lo quite. ¿Puede ser eso?

Otra pregunta: supongo que la propuesta no es la mejore de todo todito,
porque a mi se me ha ocurrido un indice que ha hecho que una consulta pase
de 9' a 2'.

Una última consulta: al lanzar el plan de ejecución, la primera frase


pone:
"costo de la consulta (en relación al proceso de lotes): 100%"
supongo que cuanto más bajo es el %, mejor, ¿no?

Muchas gracias.


Respuesta Responder a este mensaje
#2 Jose Mariano Alvarez \(MUG\)
09/02/2004 - 00:08 | Informe spam
El que te quite un indice o lo agregue depende de la consulta que el
asistente analiza. Si lo haces de esa forma y analizas una por una las
consultas, las recomendaciones pueden no ser las adecuadas ya que cada
recomendacion solo depende de un query en particular y no toma en cuanta
ninguno de los otros.

Los indices son tan importantes como el diseño de la base de datos. Si tu
diseño no es el adecuado puede que tengas problemas a la hora de agregar
indices.

Para que mejore en un conjunto, sugiero que realizes un trace de la base de
datos y uses la aplicacion en forma normal. De esta forma luego podras
analizar el perfil de uso de la aplicacion. En el asistente en lugar de
seleccionar la consulta, seleccionas la traza que te ha dejado el profiler.
Entonces la recomendacion toma en cuanta la carga de trabajo sobre la base
de datos y no una consulta en particular.

No te olvides de tener las estadisticas actualizadas sino el asistente puede
darte recomendaciones no tan buenas.

Jose Mariano Alvarez
Comunidad de base de datos
Grupo de Usuarios Microsoft
www.mug.org.ar


"Víctor" wrote in message
news:quvVb.3248063$
Hola.

Tengo una dudilla de cómo trabaja el optimizador de índices.

En el Analizador de consultas escribo una consulta, y entonces ejecuto el
optimizador. Le quito que mantenga los índices existentes, que utilize las
vistas indexadas, y un análisis exhaustivo. En la caraga de trabajo, dejo


la
que hay por defecto (selección del Analizador de consultas SQL), y en las
tablas, marco las que utilizao en la consulta.

Lo he probado con dos consultas diferentes, y en una me dice que ponag un
índice, y en la segunda que lo quite. ¿Puede ser eso?

Otra pregunta: supongo que la propuesta no es la mejore de todo todito,
porque a mi se me ha ocurrido un indice que ha hecho que una consulta pase
de 9' a 2'.

Una última consulta: al lanzar el plan de ejecución, la primera frase


pone:
"costo de la consulta (en relación al proceso de lotes): 100%"
supongo que cuanto más bajo es el %, mejor, ¿no?

Muchas gracias.


Respuesta Responder a este mensaje
#3 Adrian D. Garcia
09/02/2004 - 03:45 | Informe spam
Agrenago a las acotaciones de "Maxi Accotto" (me encanto esta frase!) lo que
deberias hacer es analizar las 2 consultas al mismo tiempo para que no te
sugiera que un indice esta demas. Al proponerte la eliminacion de un indice
la propuesta esta basada en el conjunto de consultas que se analizan.

El 100% se refiere al costo total del tiempo de ejecucion de la consulta
dentro del batch que se esta ejecutando. Si estas ejecutando solo unn query
siempre obtendras un 00% (siempre y cuando el famoso bug de redondeo no de
valores como 200%, 300%, etc). Este valor sirve, por ejemplo, en el caso de
que analises la ejecucion de un procedimiento almacenado con varios
instrucciones T-SQL. El valor indicara cual operacion/query es el mas
"pesado" para que uno apunte a la optimizacion de esa consulta en
particular.


Saludos
Adrian D. Garcia
MCSD
NDSoft Consultoria y Desarrollo

"Maximiliano d. Accotto" wrote in message
news:
Victor:

mira el asistente en principio lo que hace es un analisis teorico (si lo
configuras como vos decis) de lo que podria mejorar en esa consulta, por


lo
cual esto varia de Consulta en consulta y es muy probable que una necesite
un indice y la otra no.

Esto tambien si quieres lo puedes no hacer sobre una consulta en si sino
sobre la carga real del servidor (esto lo podrias capturar por ej durante
todo un dia,semana o lo que te guste y luego en otro servidor hacer los
cambios de tunnig)

Lo que debes ver en el plan de ejecucion basicamente es:

Que no haga Scan (Table Scan,index Scan) un Scan es ir registro por


registro
y comparar con lo que buscas, por lo cual es donde mas se demora la cosa,


lo
que debes buscar es que haga Seek.

Otra cosa que debes ver es el tiempo empleado por el CPU (ojo que esto


puede
variar dependiendo del Servidor)
Otra cosa tambien son las I/O, esto te puede dar una idea tambien.

Con estas cosas podras asegurarte buenos rendimientos quizas.

Si te interesa ver un poco mas podrias revisar este link:

www.portalsql.com, donde encontraras una serie de Articulos muy


interesantes
sobre dicho tema. Tambien puedes ir a la pagina de Microsoft donde se
encontrara mucha informacion.

Salu2

Maxi





"Víctor" escribió en el mensaje
news:quvVb.3248063$
> Hola.
>
> Tengo una dudilla de cómo trabaja el optimizador de índices.
>
> En el Analizador de consultas escribo una consulta, y entonces ejecuto


el
> optimizador. Le quito que mantenga los índices existentes, que utilize


las
> vistas indexadas, y un análisis exhaustivo. En la caraga de trabajo,


dejo
la
> que hay por defecto (selección del Analizador de consultas SQL), y en


las
> tablas, marco las que utilizao en la consulta.
>
> Lo he probado con dos consultas diferentes, y en una me dice que ponag


un
> índice, y en la segunda que lo quite. ¿Puede ser eso?
>
> Otra pregunta: supongo que la propuesta no es la mejore de todo todito,
> porque a mi se me ha ocurrido un indice que ha hecho que una consulta


pase
> de 9' a 2'.
>
> Una última consulta: al lanzar el plan de ejecución, la primera frase
pone:
> "costo de la consulta (en relación al proceso de lotes): 100%"
> supongo que cuanto más bajo es el %, mejor, ¿no?
>
> Muchas gracias.
>
>


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