none
tarda la consulta desde código y no desde sql RRS feed

  • Pregunta

  • buenas,

    mi problema es este:

    1.- realizo una consulta desde sqlserver la cual me dura 3 segundos

    2.- cuando intento realizar una consulta desde el código (C#) en entorno web con mvc la consulta tarda mas de 15 segundos y al final me marca un error de timeout.

    ¿porque tarda tanto la consulta en terminar y al final no quiere? 

    estructura de codigo

    dbentities db= new edentities();

    var mivariable= db.procedimientoalmacenado(parametros).tolist();

    nota: solo en 1 consulta no funciona en las demás las consultas funcionan correctamente. 

    gracias.


    limon,

    martes, 17 de febrero de 2015 17:51

Respuestas

  • buenas,

    si, la tabla tiene indices para mejorar la velocidad.

    me refería que es el mismo proveedor de servicios el cual nos da la base de datos y el hosting .

    SQL Profiler aún no lo he utilizado por la poca experiencia que tengo con las herramientas, si tienes alguna guía te lo agradecería,

    pero debo decir que no tengo acceso mas que al diseño de la base de datos, querys y lo que pueda hacer conectado desde mi sqllocal conectado al servidor debido a que el proveedor no nos da otro acceso.

    ¿crees que esta consulta sea lenta por parte de sql  o sea de visual studio?

    saludos.


    limon,

    jueves, 19 de febrero de 2015 15:22

Todas las respuestas

  • hola

    esa consulta cuanta informacion esta retornando como respuesta? cuantos registros

    recuerda que ademas de recuperar los datos se debe armar la entidad y si usas esto en un view se deber renderizar el html, esto tambien lleva tiempo

    la query en sql server es directo en el motor de la db, a esto debes sumarle el tiempo de las operaciones en tu codigo, dependiendo de la cantidad de registros puede demorarse algo mas

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    martes, 17 de febrero de 2015 18:16
  • Hola,

    No es lo mismo ejecutar la consulta en local (desde Managment Studio) que desde una aplicación, sobre todo si es web ya que la velocidad en que la  información se envía ya depende de otros factores como la latencia, ancho de banda, etc.

    ¿Cuántos registros retorna el procedimiento?. En web, es recomendable paginar o particionar, de tal manera que los tiempos de respuesta se minimizan.

    Esperamos tu feed-back

    Si la solución propuesta atendió su consulta no olvide marcarla como respuesta.

    Willams Morales
    Arequipa - PERÚ

    martes, 17 de febrero de 2015 19:00
  • el numero de registros que retorna son de 12 fijos. 

    se que tarda mas por ser una aplicacion pero yo digo que tarda al momento de realizar la consulta, las operaciones que realice con la información no las he colocado porque no puedo usarla por lo mismo .

    remarco que la consulta tardaba anteriormente 3 segundos y ahora me marca ese error.

    gracias por la atención.


    limon,

    jueves, 19 de febrero de 2015 0:56
  • hola

    la demora la observas cuando ejecutas desde el VS o cuando publicas el desarrollo en un sitio en el iis ?

    ademas apemas ejecutas se demoras pero las posteriores acciones son rapidas o la demora esta siempre

    lo planteo porque la primer ejecucion siempre es mas lenta, debe armar el contexto y parseras las queries, pero una vez cacheadas deberias ser mas rapido

    justamente hace poco se planteo un problema similar

    Consultas a Sql Server Lentas



    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 19 de febrero de 2015 1:54
  • buenas,

    la consulta es lenta cuando se esta ejecutando local y cuando se publica tiene el mismo problema (pd. la base de datos y el sitio donde se publica tienen el mismo grupo de servidores de proveedor).

    No puedo saber si la cache se esta almacenando porque la consulta no se termina de ejecutar y me marca ese error de tiempo de espera .

    el error ocurre exactamente cuando se realiza la consulta,

    ¿El trafico de la red tendrá algo que ver? o ¿o el procesador del servidor tendrá algo que ver?,

    ¿puedo aumentar el tiempo de espera de la consulta desde código para evitar esto?

    muchas gracias por tu tiempo y contestar esto.


    limon,


    • Editado denegal jueves, 19 de febrero de 2015 5:53 error de contexto
    jueves, 19 de febrero de 2015 5:52
  • hola

    dices que retorna 12 registros, pero sobre que volumen de informacion aplica la consulta, validaste si quizas se requiere crear algunos indices en la tabla

    puedes habilitar el Sql Profiler ? digo para evaluar como se esta creando la query que demora

    >>la base de datos y el sitio donde se publica tienen el mismo grupo de servidores de proveedor

    esto que significa?

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina


    jueves, 19 de febrero de 2015 13:09
  • buenas,

    si, la tabla tiene indices para mejorar la velocidad.

    me refería que es el mismo proveedor de servicios el cual nos da la base de datos y el hosting .

    SQL Profiler aún no lo he utilizado por la poca experiencia que tengo con las herramientas, si tienes alguna guía te lo agradecería,

    pero debo decir que no tengo acceso mas que al diseño de la base de datos, querys y lo que pueda hacer conectado desde mi sqllocal conectado al servidor debido a que el proveedor no nos da otro acceso.

    ¿crees que esta consulta sea lenta por parte de sql  o sea de visual studio?

    saludos.


    limon,

    jueves, 19 de febrero de 2015 15:22
  • Leandro buen dia.

    Tengo un problema parecido. si ejecuto mi procedimiento almacenado en SQL Management Studio el tiempo de consulta es de 198 ms promedio. me genera una consula de 800 registros y contienen 4 funciones que totalizan cada una 27000 registros aprox. Si lo corro en VS C# el tiempo es de 4890 ms. lo he tomado desde que inicia la sentencia hasta que sale de ella. (planMayor es el procedimiento almacenado)

    this

    .planMayorTableAdapter.Fill(this.jMG30VB01DataSet.planMayor, fecIni, fecFin);

    Agradeceria mucho ideas para optimizar mi consulta. (si necesitan el codigo de las funciones o del procedimiento almacenado me comentan)

    Saludos,

    Jaime.


    saludos.

    domingo, 15 de noviembre de 2015 5:02
    • Hola, lo consulto porque estoy teniendo el mismo problema practicamente...

    tengo varias consultas para sacar informes con respecto a datos (SELECT...) que hago a varias tablas con INNER JOIN el cual de esas consultas hay una en particular que me demora demasiado tiempo, digamos que entre 1 minuto y un minuto y medio, (funciona porque extiendo el CommandTimeout a mas de 2 minutos de espera) de todas formas desde el motor de base de datos, la consulta me demora 2 segundos maximo... hay mucha diferencia... ¿a que se puede deber esto?  la verdad es muy tedioso y no son muchos registros lo que me tiene que devolver, esta en un rango entre 10 y 500 registros..

    adjunto la parte donde hace la consulta a la base y el comando de extension de tiempo de CommandTimeout

     datosAdapter = new MySqlDataAdapter(txSQL, DB.conexBD);        
     comandoSQL = new MySqlCommandBuilder(datosAdapter);             
     datosAdapter.SelectCommand.CommandTimeout = 300;

     datosAdapter.Fill(Tabla); //------------------------------> es aqui donde demora la consulta en cuestión
     this.DGResumenExp.DataSource = Tabla;

    Si requieren algo mas de info les paso, sin mas les agradesco la atención

    Saludos

    miércoles, 13 de noviembre de 2019 12:05