AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 324460
Accepted
Mainecoon21
Mainecoon21
Asked: 2023-03-07 19:16:47 +0800 CST2023-03-07 19:16:47 +0800 CST 2023-03-07 19:16:47 +0800 CST

Por que não consigo criar um filtro em um rastreamento no SQL Server?

  • 772

Por causa de uma versão desatualizada do SQL Server, tenho que usar rastreamentos do lado do servidor para coletar algumas informações, mas se tento implementá-lo, recebo o erro Filters with the same event column ID must be grouped together. Meu código:

exec sp_trace_setfilter 2, 10, 0, 7, N'SQL Server Profiler%'
exec sp_trace_setfilter 2, 10, 0, 7, N'DatabaseMail%'
exec sp_trace_setfilter 2, 10, 0, 7, N'SQLAgent%'

Exemplo de KnowledgeBase ( https://learn.microsoft.com/en-us/sql/relational-databases/system-stored-procedures/sp-trace-setfilter-transact-sql?view=sql-server-ver16 ):

sp_trace_setfilter  1, 10, 0, 6, N'SQLT%';  
sp_trace_setfilter  1, 10, 0, 6, N'MS%';

Muitas vezes pode ser algo óbvio, mas não tenho ideia de por que não funciona (não é ponto e vírgula).
Algum de vocês tem alguma ideia?

sql-server
  • 2 2 respostas
  • 325 Views

2 respostas

  • Voted
  1. Best Answer
    Dan Guzman
    2023-03-07T20:31:35+08:002023-03-07T20:31:35+08:00

    Recebo um erro "Filtros com o mesmo ID de coluna de evento devem ser agrupados".

    Parece que o rastreamento já possui um ou mais filtros na coluna ApplicationName (coluna 10) seguidos por filtros em outras colunas. Você obtém o erro ao adicionar outro filtro ApplicationName porque a coluna é diferente do último filtro adicionado. O SQL Trace requer que todos os filtros em uma determinada coluna sejam adicionados em sequência (ou seja, "agrupados").

    Exemplo de script de problema:

    -- add application name not like filter
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Microsoft SQL Server Management Studio%'
    
    -- add host name equal filter
    exec sp_trace_setfilter @TraceID, 8, 0, 0, N'YourServer'
    
    -- add another application name not like filter
    -- this errs because the last filter added is not application name
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler%'
    

    Roteiro corrigido:

    -- add application name not like filters
    -- this succeeds because the app name filters are grouped together
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'Microsoft SQL Server Management Studio%'
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler%'
    
    -- add host name equal filter
    exec sp_trace_setfilter @TraceID, 8, 0, 0, N'YourServer'
    

    Observe que esse requisito de agrupamento se aplica ao script de criação de rastreamento inicial, bem como quando os filtros são adicionados posteriormente. A implicação ao adicionar outro filtro a um rastreamento é uma das seguintes:

    • rastreamento não tem filtros
    • trace ainda não tem um filtro na coluna
    • o último filtro adicionado ao rastreamento deve estar na mesma coluna
    • 7
  2. SqlWorldWide
    2023-03-07T20:33:51+08:002023-03-07T20:33:51+08:00

    A menos que você forneça o código completo, descobrir o que está errado será difícil. Usei os mesmos filtros que você forneceu na pergunta e pude iniciar com êxito uma parada de um rastreamento do lado do servidor. Estou usando:

    Microsoft SQL Server 2022 (RTM-CU1) (KB5022375) - 16.0.4003.1 (X64) 27 de janeiro de 2023 16:51:31 Copyright (C) 2022 Microsoft Corporation Developer Edition (64 bits) no Windows 10 Enterprise 10.0 (Build 19044: )

    Aqui está a amostra que executei:

    -- Variables
    DECLARE @rc int, @TraceID int, @filename NVARCHAR(256), @maxsize BIGINT, @on BIT
    DECLARE @Folder VARCHAR(1000)
    
    -- Create the holding folder
    SET @Folder = 'C:\temp\testtrace1\'
    
    exec master.dbo.xp_create_subdir @Folder
    
    SELECT @filename = @Folder + '\' + REPLACE(@@SERVERNAME, '\', '_') + '__sp_trace'
    SELECT @maxsize=50, @on=1
    
    
    -- Create a Queue
    EXEC @rc = sp_trace_create @TraceID OUTPUT, 2, @filename, @maxsize, NULL 
    IF (@rc != 0) GOTO error
    
    
    -- Set the events
    exec sp_trace_setevent @TraceID, 10, 2, @on  -- Needed for 2008 RML
    exec sp_trace_setevent @TraceID, 12, 2, @on  --  Needed for 2008 RML 
    exec sp_trace_setevent @TraceID, 10, 3, @on
    exec sp_trace_setevent @TraceID, 10, 7, @on
    exec sp_trace_setevent @TraceID, 10, 15, @on
    exec sp_trace_setevent @TraceID, 10, 8, @on
    
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler%'
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'DatabaseMail%'
    exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQLAgent%'
    
    
    -- Set the trace status to start
    exec sp_trace_setstatus @TraceID, 1
    
    
    -- Wait 1 min
    WAITFOR DELAY '00:01:00'
    
    -- Stop/Delete the trace
    exec sp_trace_setstatus @TraceID, 0
    exec sp_trace_setstatus @TraceID, 2
    
    goto finish
    
    error: 
    select ErrorCode=@rc
    
    finish: 
    
    • 0

relate perguntas

  • SQL Server - Como as páginas de dados são armazenadas ao usar um índice clusterizado

  • Preciso de índices separados para cada tipo de consulta ou um índice de várias colunas funcionará?

  • Quando devo usar uma restrição exclusiva em vez de um índice exclusivo?

  • Quais são as principais causas de deadlocks e podem ser evitadas?

  • Como determinar se um Índice é necessário ou necessário

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host

    • 12 respostas
  • Marko Smith

    Como fazer a saída do sqlplus aparecer em uma linha?

    • 3 respostas
  • Marko Smith

    Selecione qual tem data máxima ou data mais recente

    • 3 respostas
  • Marko Smith

    Como faço para listar todos os esquemas no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Jin conectar ao servidor PostgreSQL: FATAL: nenhuma entrada pg_hba.conf para o host 2014-12-02 02:54:58 +0800 CST
  • Martin Hope
    Stéphane Como faço para listar todos os esquemas no PostgreSQL? 2013-04-16 11:19:16 +0800 CST
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve