none
Procedimiento demora en hacer Select RRS feed

  • Pregunta

  • Hola.

    Tengo un Sp que hace un Select donde le paso 3 parametros, dicho SP demora unos 4 minutos, pues bien, si ejecuto el Select directo con los mismos parametros demora milesimas de segundo, pensando que era sniffing

    - No le faltan indices

    - Puse WITH RECOMPILE

    - Lo elimine y lo volvi a crear

    Sigue demorando mucho vs la ejecucuón del mismo sin ser SP es decir solo ejecutando SELECT

    Saludos.


    DBA SQL Server Santiago/Chile

    lunes, 16 de abril de 2018 14:10

Todas las respuestas

  • Hola CMAPM:

    Tu problema es parameter sniffing, que supongo ya sabías.

    https://blogs.technet.microsoft.com/mdegre/2012/03/17/qu-est-el-parameter-sniffing/

    Si utlizas variables dentro del procedimiento almacenado, que recogen lo que reciba el procedimiento almacenado, le obligas a varíar los planes de ejecución que ya disponía,

    No es perfecto, pero de momento te ayudará mucho, siempre que el OPTIMIZE FOR RECOMPILE no te ayude.

    Donde mi procedure fuera tal que

    CREATE PROCEDURE EJEMPLO (@ID INT)
    AS
    DECLARE @INDICE INT;
    SET @INDICE = @ID;
    SELECT * FROM ARTICULOS WHERE ID = @INDICE
    GO
    

    Un saludo

    lunes, 16 de abril de 2018 14:17
  • Hola.

    ¿Revisaste si el plan de ejecución que usa es el mismo, tanto en el SP como en el query solo?

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    lunes, 16 de abril de 2018 15:16
  • Hola.

    Es extraño lo que sucede.

    El SP recibe 3 parametros:

    CREATE p_test @fecha_inicio varchar(10),  @fecha_fin varchar (10), @usuario int 

    AS

    etc

    Cuando ejecuto demora 4 minutos.

    Después de muchas pruebas, cambié el primer parametro (que encontré que era el que hacia que demorara)

    Y le asigne el valor ya dentro del SP.

    CREATE p_test @fecha_inicio2 varchar(10),  @fecha_fin varchar (10), @usuario int 

    AS

     Declare @fecha_inicio varchar(10)

     SET  @fecha_inicio = @fecha_inicio2

    Y ahora demora menos de 1 segundo.

    Saludos.


    DBA SQL Server Santiago/Chile

    lunes, 16 de abril de 2018 16:09
  • Estimados.

    Encontré el problema, era de mantención. 

    Actualicé las estadistcias de una de las tablas y ahora anda perfecto.


    Saludos.


    DBA SQL Server Santiago/Chile

    lunes, 16 de abril de 2018 16:18
  • Hola.

    Sospecho que si, jeje, pero para no asumir, ¿tienes en AUTO todo el tema de creación o actualización de estadísticas?

    Saludos,


    Guillermo Taylor F.
    MVP Data Platform & IT Pro
    Mi Blog

    lunes, 16 de abril de 2018 19:04