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 / 20159
Accepted
marc_s
marc_s
Asked: 2012-06-30 07:15:54 +0800 CST2012-06-30 07:15:54 +0800 CST 2012-06-30 07:15:54 +0800 CST

Configurando a filtragem para rastreamento do lado do servidor

  • 772

Estou tentando configurar um rastreamento do lado do servidor no SQL Server 2008 R2. Embora eu não tenha problemas para selecionar eventos e colunas de dados, a filtragem parece um pouco estranha...

Eu estava tentando configurar uma filtragem na duração do lote SQL ou no procedimento armazenado (filtre qualquer coisa >= 1000 ms), mas também queria filtrar o nome do banco de dados envolvido.

Quando exporto a definição de rastreamento do SQL Profiler para um *.sqlarquivo, no entanto, não encontro nenhuma filtragem no nome do banco de dados:

-- lots of other stuff up here - setting up trace events and so on...

-- Set the Filters
declare @intfilter int
declare @bigintfilter bigint

exec sp_trace_setfilter @TraceID, 10, 0, 7, N'SQL Server Profiler - 100479e4-6eeb-4608-af17-64141f1631ec'
set @bigintfilter = 1000000
exec sp_trace_setfilter @TraceID, 13, 0, 4, @bigintfilter

....

Então o que isso quer dizer? Por que posso especificar um nome de banco de dados para filtrar - mas a definição de rastreamento não o contém, no final?

  • Isso significa que o rastreamento do lado do servidor está sempre verificando apenas o banco de dados em que está sendo criado?
  • Mas então por que posso especificar um filtro pelo nome do banco de dados?
  • Isso também significa que não há como fazer rastreamento em todo o servidor de banco de dados em, por exemplo, deadlocks?

Atualização: depois de mais algumas brincadeiras, cheguei à seguinte conclusão:

  • o filtro no nome do banco de dados não foi aplicado ao Create Tracescript no meu caso, pois acabei selecionando apenas o Locks / Deadlock Graphevento - e esse evento não expõe a Database Namecomo uma coluna de evento

  • se eu escolher outros eventos, como RPC completedesse , expor Database Namecomo uma coluna de evento, posso filtrar Database Namee esse filtro também é adicionado corretamente ao Create Tracescript.

Não consigo descobrir como consegui definir um filtro em Database Name, pois normalmente, se um evento não expõe uma coluna, essa coluna também não está disponível na caixa de Column filterdiálogo ....

De qualquer forma - por quaisquer razões que estejam além de mim (por enquanto, pelo menos), Deadlock Graphnão expõe o Database Namee, portanto, também não posso filtrar essa propriedade ....

Obrigado a todos que ajudaram e forneceram comentários perspicazes!

sql-server-2008-r2
  • 2 2 respostas
  • 4807 Views

2 respostas

  • Voted
  1. Best Answer
    Thomas Stringer
    2012-06-30T08:02:42+08:002012-06-30T08:02:42+08:00

    Isso significa que o rastreamento do lado do servidor está sempre verificando apenas o banco de dados em que está sendo criado?

    Não, o rastreamento do lado do servidor tem o escopo apenas disso: o servidor. Quando crio (o que penso ser) a definição de rastreamento exata e a exporto, obtenho o seguinte trecho:

    -- Set the Filters
    declare @intfilter int
    declare @bigintfilter bigint
    
    set @bigintfilter = 1000000
    exec sp_trace_setfilter @TraceID, 13, 0, 4, @bigintfilter
    
    exec sp_trace_setfilter @TraceID, 35, 0, 6, N'AdventureWorks'
    -- Set the trace status to start
    exec sp_trace_setstatus @TraceID, 1
    

    Também estou usando o SQL Server Profiler 2008 R2. Se você não filtrar pelo nome do banco de dados, estará capturando eventos de rastreamento para todos os bancos de dados de instância. Quanto ao motivo de sua exportação não incluir essa parte do filtro, não posso dizer com certeza. Eu sei que isso é óbvio, mas eu verificaria sua definição de rastreamento no Profiler antes de exportar para garantir que o nome do banco de dados seja de fato incluído como um filtro (novamente, sei que você provavelmente dobrou e triplicou isso, mas eu tinha dizê-lo).

    • 4
  2. Jon Seigel
    2012-06-30T07:58:59+08:002012-06-30T07:58:59+08:00

    Não tenho certeza do que está acontecendo com seu Profiler porque consegui fazer isso antes. Às vezes, a GUI para configurar a filtragem fica um pouco confusa e, se você alterar certas coisas na caixa de diálogo de rastreamento, todos os filtros serão redefinidos para os padrões. Dito isso, sinceramente não me lembro se usei as ferramentas de gerenciamento 2008 R2 ou 2012 para gerar meu script.

    De qualquer forma, aqui está o código para fazer a filtragem que você deseja:

    exec sp_trace_setfilter @TraceID, 35, 0, 6, N'<database name 1>'
    exec sp_trace_setfilter @TraceID, 35, 1, 6, N'<database name 2>'
    exec sp_trace_setfilter @TraceID, 35, 1, 6, N'<database name 3>'
    

    MSDN: sp_trace_setfilter

    • 2

relate perguntas

  • Propriedades de redução automática, criptografia e modelo de recuperação no SQL Server 2008 R2

  • A instalação autônoma do cluster do SQL Server 2008 R2 falha com o erro - "Caracteres ilegais no caminho".

  • Migração de banco de dados grande

  • plano de manutenção executado pelo agente

  • Randomizando o conteúdo da tabela e armazenando-o de volta na tabela

Sidebar

Stats

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 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

    Como selecionar a primeira linha de cada grupo?

    • 6 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
    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
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +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
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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