none
Tiempo de espera demasiado en querys RRS feed

  • Pregunta

  • Buen dia, explico mi “problema” : tengo una tabla con más de un millón de registros y al momento de hacer una consulta relacionando con otra tabla (10 registros) me genera algún tiempo de espera superable a lo deseado; bien digamos hago algo asi:

    select t21.campo1,SUM(t1.campo1) as columna from Table1 as t1

    inner join Table2 as t2 on t2.campoPkT1 = t1.campoPkT2

    where CAST(t1.campoFecha as date) between ‘2018-01-01’ and ‘2018-01-31’

    group by t2.campo1

    Esta consulta me tarda un tiempo de 30 minutos; ahora igual un tema un poco “extraño” es que si lo hago

    select t21.campo1,SUM(t1.campo1) as columna from Table1 as t1

    inner join Table2 as t2 on t2.campoPkT1 = t1.campoPkT2

    where CAST(t1.campoFecha as date) between ‘2017-12-01’ and ‘2017-12-31’

    group by t2.campo1

    solo me tarda 4 segundos. ¿A que puede deberse este caso?

    Igual con esta misma tabla ya me empieza a tardar demasiado en guardar un registro en un aproximado de 2 minutos, ¿Se deberá a lo mismo?

    lunes, 5 de febrero de 2018 17:02

Respuestas

  • En sql server hay una herramienta para el analisis de consultas y su mejora quizas deberías plantearte de usarla.

    Una tabla de un millon de registros me parece irrisoria, por que he trabajado con tablas mucho másgrandes y jamás he tenido problemas. El secreto es indexar correctametne la tabla por todos los campos que vayas a usar en las partes where donde se filtre datos de esa tabla por lo que dicho esto y mirando tu consulta si usará el analizador de consutlas que te he comentado este te indicaria seguramente que deberías crear un indice para el campoFecha, y quizás también para el campo1 de la talba t2. que se usa para el group.

    Luego el problema que comentas que un insert te tarda dos minutos , eso no es posible ni aposta. por lo que debes tener alguna cosa mal en la tabla por que no ni normal ni aceptable. Hay herraminetas para verificar la integridad de tablas, indices etc... y seguramente tienes ahi un problema también.

    lunes, 5 de febrero de 2018 17:40

Todas las respuestas

  • En sql server hay una herramienta para el analisis de consultas y su mejora quizas deberías plantearte de usarla.

    Una tabla de un millon de registros me parece irrisoria, por que he trabajado con tablas mucho másgrandes y jamás he tenido problemas. El secreto es indexar correctametne la tabla por todos los campos que vayas a usar en las partes where donde se filtre datos de esa tabla por lo que dicho esto y mirando tu consulta si usará el analizador de consutlas que te he comentado este te indicaria seguramente que deberías crear un indice para el campoFecha, y quizás también para el campo1 de la talba t2. que se usa para el group.

    Luego el problema que comentas que un insert te tarda dos minutos , eso no es posible ni aposta. por lo que debes tener alguna cosa mal en la tabla por que no ni normal ni aceptable. Hay herraminetas para verificar la integridad de tablas, indices etc... y seguramente tienes ahi un problema también.

    lunes, 5 de febrero de 2018 17:40
  • Gracias #vyrcyrus, haré las revisiones y comentare mis resultados
    lunes, 5 de febrero de 2018 18:00
  • Algún comentario de tus resultados?
    viernes, 22 de octubre de 2021 6:36