none
Tempo Execução de Procedure X Query RRS feed

  • Pergunta

  • Bom dia,

    Estou tendo problemas com o tempo de execução de algumas procedures. Porém quando pego as consultas dentro da procedure e executo, o retorno é instantâneo. Quando copio e colo a consulta para dentro da procedure a mesma demora até 2 min a sua execução.

    Alguém já passou por isso? Tem alguma solução?

    Obs. Tenho o SQL Server 2008 com Windows Server 2008 R2.

    Obrigado.


    Luciano Lopes de Oliveira

    terça-feira, 4 de junho de 2013 12:57

Respostas

  • Pessoa,

    Consegui resolver o problema.

    Executei o Plano de Execução do SQL para as querys e foi recomendado a criação de alguns índices. No momento que criei os Índices a minha procedure começou a executar mais rápido.

    Agradeço a atenção de todos.


    Luciano Lopes de Oliveira

    • Marcado como Resposta Luciano Lopes terça-feira, 4 de junho de 2013 14:36
    terça-feira, 4 de junho de 2013 14:36

Todas as Respostas

  • Olá Luciano, a sua procedure está fazendo chamadas a outras procedures?

    Wellinghton Pimentel Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 4 de junho de 2013 13:32
  • Não faço chamadas a procedures dentro desta procedure.

    Eu utilizo tabelas temporárias.

    Obrigado


    Luciano Lopes de Oliveira

    terça-feira, 4 de junho de 2013 13:47
  • Pessoa,

    Consegui resolver o problema.

    Executei o Plano de Execução do SQL para as querys e foi recomendado a criação de alguns índices. No momento que criei os Índices a minha procedure começou a executar mais rápido.

    Agradeço a atenção de todos.


    Luciano Lopes de Oliveira

    • Marcado como Resposta Luciano Lopes terça-feira, 4 de junho de 2013 14:36
    terça-feira, 4 de junho de 2013 14:36
  • Ah legal Luciano, estava pensando exatamente nisso a possibilidade de criar índices, que bom que resolveu,

    abração, qualquer problema estamos à disposição.


    Wellinghton Pimentel Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 4 de junho de 2013 14:45
  • Ah Luciano, acredito que essa query possa te ajudar.

    Ela vai te mostrar a fragmentação dos Índices do seu BD, pode ser útil pra você.

    SELECT
        '[' + DB_NAME() + '].[' + OBJECT_SCHEMA_NAME(frag.[object_id], 
    	DB_ID()) + '].[' + OBJECT_NAME(frag.[object_id], DB_ID()) + ']' AS 'Nome da tabela',
    	 NameIndex.name AS 'Nome_Index',
    	 NameIndex.index_id,
    	 index_type_desc AS 'Tipo_Index',
    	 avg_fragmentation_in_percent AS '% de Fragmentação'
    FROM
    	sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL, NULL, NULL) AS frag
    INNER JOIN
    	sys.indexes AS NameIndex
    ON
    	frag.object_id = NameIndex.object_id
    WHERE
    	avg_fragmentation_in_percent <> '0'
    ORDER BY
    	avg_fragmentation_in_percent DESC
    GO


    Wellinghton Pimentel Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como Resposta.

    terça-feira, 4 de junho de 2013 14:47
  • Wellinghton,

    Obrigado pela atenção. acredito que sua query possa ajudar muito na manutenção do índices.

    Até a próxima.

    Obrigado.


    Luciano Lopes de Oliveira

    terça-feira, 4 de junho de 2013 15:37