locked
Query executa mais rápido que table function RRS feed

  • Pergunta

  • Boa tarde

    Estou com uma dificuldade de entender o que está ocorrendo aqui.

    Tenho uma query e desta foi criada uma function.

    O que está ocorrendo é que se eu executo a query, esta demora no máximo um segundo.
    Porém quando executo a function que é exatamente a mesma query com os mesmos parâmetros, esta demora entre 3 e 4 segundos.

    Alguém sabe me dizer algum provável motivo disto estar ocorrendo?

    valeu
    quinta-feira, 5 de fevereiro de 2015 15:53

Respostas

  • Deleted
    sexta-feira, 6 de fevereiro de 2015 09:48
  • Júlio,

    Concordo com o Jose.Diz, veja tembém este post:

    http://www.sql-server-performance.com/2013/avoiding-parameter-sniffing-in-sql-server/

    Acredito que poderá ajudar de maneira mais fácil a entender como ocorre o parameter sniffing.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 6 de fevereiro de 2015 12:40

Todas as Respostas

  • Olá José

    A function é implementada como uma table function, tem a seguinte estrutura:

    CREATE FUNCTION [dbo].[NomeDaFunction](@Id int, @IdOutro int, @IdNulavel int = NULL)
    RETURNS TABLE
    AS
    RETURN [Aqui vai um select grande porém único];

    valeu

    quinta-feira, 5 de fevereiro de 2015 16:18
  • Olá

    Sim é uma inline table valued, os planos de execução são muito diferentes, mas não entendi exatamente sobre o parameter sniffing, isso em uma função inline é possível, pergunto pois já vi em stored procedures mas não em functions, teria alguma dica a mais para este caso?

    valeu


    • Editado Julio C G sexta-feira, 6 de fevereiro de 2015 09:34
    sexta-feira, 6 de fevereiro de 2015 09:33
  • Júlio,

    Concordo com o Jose.Diz, veja tembém este post:

    http://www.sql-server-performance.com/2013/avoiding-parameter-sniffing-in-sql-server/

    Acredito que poderá ajudar de maneira mais fácil a entender como ocorre o parameter sniffing.


    Pedro Antonio Galvao Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitario | SoroCodigos | @JuniorGalvaoMVP | http://pedrogalvaojunior.wordpress.com]

    sexta-feira, 6 de fevereiro de 2015 12:40