locked
SQL Server 2005 - Descobrir a query que gerou Sort Warning RRS feed

  • Pergunta

  • Pessoal, boa tarde

    Após muito pesquisar, testar algumas coisas sem sucesso, recorro ao fórum para ver se vocês me ajudam a identificar qual consulta ao banco causou o Sort Warning que eu capturei pelo SQL Profiler.

    Gerei uma tabela a partir de um profiler, e a princípio pensei em identificar o comando anterior ao eventclass de Sort Warning, mas não tenho certeza se esta é a maneira correta, pois por exemplo, houve casos de aparecer Sort Warning no Database A, e o comando anterior foi no Database B que não tem relação nenhuma.

    quarta-feira, 3 de agosto de 2016 19:51

Respostas

  • Danilo,

    Ok, então mas no SQL Server Profiler você consegui pegar o ID da transação que esta apresentando estes warning e dentro do Management Studio através do comando DBCC InputBuffer no seu caso.

    Se estivesse utilizando pelo menos o SQL Server 2008 R2 seria possível utilizar a sys.dm_exec_sql_text.


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

    terça-feira, 9 de agosto de 2016 15:30
    Moderador

Todas as Respostas

  • Danilo,

    A partir da versão 2008 R2 a Microsoft implementou este tipo de alerta de maneira mais fácil no Management Studio, na barra de mensagens e também na barra de propriedades.

    Mas talvez este exemplo abaixo pode te ajudar:

    -- Find SQL Server Errors for Sort Warnings --
    DECLARE @path NVARCHAR(260)
    
    SELECT @path=path FROM sys.traces WHERE is_default = 1
    
    --Errors and Warnings: Sort Warnings
    SELECT DatabaseName, TextData, 
           Duration, StartTime, 
    	   EndTime, SPID, 
    	   ApplicationName, LoginName   
    FROM sys.fn_trace_gettable(@path, DEFAULT)
    WHERE EventClass IN (69)
    ORDER BY StartTime DESC

    Através da sys.fn_trace_gettable é possível obter este tipo de informação.


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

    quinta-feira, 4 de agosto de 2016 16:01
    Moderador
  • Obrigado Júnior Galvão, porém, infelizmente a coluna TextData vem nula.

    Já havia tentado esta solução.

    E apenas a nível de informação, a consulta também retorna nulo em um servidor nosso SQL2014


    Alguma outra sugestão?

    quinta-feira, 4 de agosto de 2016 16:38
  • Danilo,

    Então no Management Studio não é apresentanda nenhuma mensagem de Warning na barra de propriedades?


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

    quinta-feira, 4 de agosto de 2016 17:57
    Moderador
  • Não cara, não aparece, já tentei algumas coisas relacionadas a cached plan, mas sem sucesso.
    quinta-feira, 4 de agosto de 2016 18:16
  • Danilo,

    Acredito que para este versão o Management Studio não apresente este suporte.

    Com base em qual cenário você esta supostamente imaginando a ocorrência de Sort Warning?

    Se você estivesse utilizando o SQL Server 2008 R2 poderia utilizar a sp_trace_setevent?

    https://msdn.microsoft.com/en-us/library/ms186265(v=sql.105).aspx

    Veja se este link pode te ajudar: http://blogs.solidq.com/en/sqlserver/identifying-solving-sort-warnings-problems-sql-server/


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

    quinta-feira, 4 de agosto de 2016 18:47
    Moderador
  • Júnior, acompanhei este link já também.

    A questão dos sort warning, foi mostrado em alguns SQL profilers, memória subindo, plano de execução mostrando os memorys grants, etc.

    Mas ter o sort warning sem saber que comando sql o gerou, fica complicado.

    quinta-feira, 4 de agosto de 2016 19:20
  • Danilo,

    Ok, então mas no SQL Server Profiler você consegui pegar o ID da transação que esta apresentando estes warning e dentro do Management Studio através do comando DBCC InputBuffer no seu caso.

    Se estivesse utilizando pelo menos o SQL Server 2008 R2 seria possível utilizar a sys.dm_exec_sql_text.


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

    terça-feira, 9 de agosto de 2016 15:30
    Moderador