none
Select com filtro nas linhas da coluna RRS feed

  • Pergunta

  • Prezados , boa tarde.

    Preciso filtrar esta query para mostrar apenas as linhas que já estão previstas na coluna wait_type 

    Resumindo: Eu preciso apenas da coluna wait_type , porem somente as linhas que estão filtrando nesta consulta , se vc executar ela completa. 

    OBS: esta consulta , faz parte da ferramente de diagnostico do sql skills 

    WITH [Waits] 
    AS (SELECT wait_type, wait_time_ms/ 1000.0 AS [WaitS],
              (wait_time_ms - signal_wait_time_ms) / 1000.0 AS [ResourceS],
               signal_wait_time_ms / 1000.0 AS [SignalS],
               waiting_tasks_count AS [WaitCount],
               100.0 *  wait_time_ms / SUM (wait_time_ms) OVER() AS [Percentage],
               ROW_NUMBER() OVER(ORDER BY wait_time_ms DESC) AS [RowNum]
        FROM sys.dm_os_wait_stats WITH (NOLOCK)
        WHERE [wait_type] NOT IN (
            N'BROKER_EVENTHANDLER', N'BROKER_RECEIVE_WAITFOR', N'BROKER_TASK_STOP',
    N'BROKER_TO_FLUSH', N'BROKER_TRANSMITTER', N'CHECKPOINT_QUEUE',
            N'CHKPT', N'CLR_AUTO_EVENT', N'CLR_MANUAL_EVENT', N'CLR_SEMAPHORE', N'CXCONSUMER',
            N'DBMIRROR_DBM_EVENT', N'DBMIRROR_EVENTS_QUEUE', N'DBMIRROR_WORKER_QUEUE',
    N'DBMIRRORING_CMD', N'DIRTY_PAGE_POLL', N'DISPATCHER_QUEUE_SEMAPHORE',
            N'EXECSYNC', N'FSAGENT', N'FT_IFTS_SCHEDULER_IDLE_WAIT', N'FT_IFTSHC_MUTEX',
            N'HADR_CLUSAPI_CALL', N'HADR_FILESTREAM_IOMGR_IOCOMPLETION', N'HADR_LOGCAPTURE_WAIT', 
    N'HADR_NOTIFICATION_DEQUEUE', N'HADR_TIMER_TASK', N'HADR_WORK_QUEUE',
            N'KSOURCE_WAKEUP', N'LAZYWRITER_SLEEP', N'LOGMGR_QUEUE', 
    N'MEMORY_ALLOCATION_EXT', N'ONDEMAND_TASK_QUEUE',
    N'PARALLEL_REDO_DRAIN_WORKER', N'PARALLEL_REDO_LOG_CACHE', N'PARALLEL_REDO_TRAN_LIST',
    N'PARALLEL_REDO_WORKER_SYNC', N'PARALLEL_REDO_WORKER_WAIT_WORK',
    N'PREEMPTIVE_HADR_LEASE_MECHANISM', N'PREEMPTIVE_SP_SERVER_DIAGNOSTICS',
    N'PREEMPTIVE_OS_LIBRARYOPS', N'PREEMPTIVE_OS_COMOPS', N'PREEMPTIVE_OS_CRYPTOPS',
    N'PREEMPTIVE_OS_PIPEOPS', N'PREEMPTIVE_OS_AUTHENTICATIONOPS',
    N'PREEMPTIVE_OS_GENERICOPS', N'PREEMPTIVE_OS_VERIFYTRUST',
    N'PREEMPTIVE_OS_FILEOPS', N'PREEMPTIVE_OS_DEVICEOPS', N'PREEMPTIVE_OS_QUERYREGISTRY',
    N'PREEMPTIVE_OS_WRITEFILE',
    N'PREEMPTIVE_XE_CALLBACKEXECUTE', N'PREEMPTIVE_XE_DISPATCHER',
    N'PREEMPTIVE_XE_GETTARGETSTATE', N'PREEMPTIVE_XE_SESSIONCOMMIT',
    N'PREEMPTIVE_XE_TARGETINIT', N'PREEMPTIVE_XE_TARGETFINALIZE',
            N'PWAIT_ALL_COMPONENTS_INITIALIZED', N'PWAIT_DIRECTLOGCONSUMER_GETNEXT',
    N'QDS_PERSIST_TASK_MAIN_LOOP_SLEEP',
    N'QDS_ASYNC_QUEUE',
            N'QDS_CLEANUP_STALE_QUERIES_TASK_MAIN_LOOP_SLEEP', N'REQUEST_FOR_DEADLOCK_SEARCH',
    N'RESOURCE_QUEUE', N'SERVER_IDLE_CHECK', N'SLEEP_BPOOL_FLUSH', N'SLEEP_DBSTARTUP',
    N'SLEEP_DCOMSTARTUP', N'SLEEP_MASTERDBREADY', N'SLEEP_MASTERMDREADY',
            N'SLEEP_MASTERUPGRADED', N'SLEEP_MSDBSTARTUP', N'SLEEP_SYSTEMTASK', N'SLEEP_TASK',
            N'SLEEP_TEMPDBSTARTUP', N'SNI_HTTP_ACCEPT', N'SP_SERVER_DIAGNOSTICS_SLEEP',
    N'SQLTRACE_BUFFER_FLUSH', N'SQLTRACE_INCREMENTAL_FLUSH_SLEEP', N'SQLTRACE_WAIT_ENTRIES',
    N'WAIT_FOR_RESULTS', N'WAITFOR', N'WAITFOR_TASKSHUTDOWN', N'WAIT_XTP_HOST_WAIT',
    N'WAIT_XTP_OFFLINE_CKPT_NEW_LOG', N'WAIT_XTP_CKPT_CLOSE', N'WAIT_XTP_RECOVERY',
    N'XE_BUFFERMGR_ALLPROCESSED_EVENT', N'XE_DISPATCHER_JOIN',
            N'XE_DISPATCHER_WAIT', N'XE_LIVE_TARGET_TVF', N'XE_TIMER_EVENT')
        AND waiting_tasks_count > 0)
    SELECT
        MAX (W1.wait_type) AS [WaitType],
    CAST (MAX (W1.Percentage) AS DECIMAL (5,2)) AS [Wait Percentage],
    CAST ((MAX (W1.WaitS) / MAX (W1.WaitCount)) AS DECIMAL (16,4)) AS [AvgWait_Sec],
        CAST ((MAX (W1.ResourceS) / MAX (W1.WaitCount)) AS DECIMAL (16,4)) AS [AvgRes_Sec],
        CAST ((MAX (W1.SignalS) / MAX (W1.WaitCount)) AS DECIMAL (16,4)) AS [AvgSig_Sec], 
        CAST (MAX (W1.WaitS) AS DECIMAL (16,2)) AS [Wait_Sec],
        CAST (MAX (W1.ResourceS) AS DECIMAL (16,2)) AS [Resource_Sec],
        CAST (MAX (W1.SignalS) AS DECIMAL (16,2)) AS [Signal_Sec],
        MAX (W1.WaitCount) AS [Wait Count],
    CAST (N'https://www.sqlskills.com/help/waits/' + W1.wait_type AS XML) AS [Help/Info URL]
    FROM Waits AS W1
    INNER JOIN Waits AS W2
    ON W2.RowNum <= W1.RowNum
    GROUP BY W1.RowNum, W1.wait_type
    HAVING SUM (W2.Percentage) - MAX (W1.Percentage) < 99 -- percentage threshold
    OPTION (RECOMPILE);

    Obrigado 


    robertscobar

    sexta-feira, 31 de maio de 2019 20:12

Respostas

Todas as Respostas

  • Deleted
    sexta-feira, 31 de maio de 2019 20:32
  • Obrigado pelo retorno José Diz 

    Nós precisamos pegar estas linhas , pra fazer uma filtro para monitoramento do zabbix.

    Se vc der um select * nesta viwer de sistema sys.dm_os_wait_stats vai te retornar todas as linhas 

    desta coluna. 

    Então o que eu queria seria seguir neste mesmo filtro , conforme o NOT IN não deixa parecer as outras 

    linhas , e então sair estas linhas do jeito que sai o select completo , porem somente esta coluna 

    Resumindo: Eu preciso fazer um select , onde só aparece esta coluna , da forma que aparece com esta query completa 

    Obrigado


    robertscobar

    sábado, 1 de junho de 2019 11:50
  • Deleted
    sábado, 1 de junho de 2019 12:33
  • Prezado Jose , Obrigado pelo retorno.

    Isto , estamos no caminho, eu ja havia tentado desta forma , porem ele lista todas as linhas ,( 789 linhas no sql 2016 ) se vc reparar , quando vc executa o select inteiro, é feito um filtro que aparece somente 11 linhas.  Segue um print de como fica executando de forma integral

    Obrigado  


    robertscobar

    sábado, 1 de junho de 2019 18:19
  • Deleted
    sábado, 1 de junho de 2019 18:44
  • Rapaz , deu certo , era isto mesmo.

    Muito obrigado Jose 

    Um abraço 


    robertscobar

    domingo, 2 de junho de 2019 03:06