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 / 96393
Accepted
Dave Mason
Dave Mason
Asked: 2015-03-27 13:37:27 +0800 CST2015-03-27 13:37:27 +0800 CST 2015-03-27 13:37:27 +0800 CST

Sinalizador de rastreamento 4199

  • 772

O artigo KB da Microsoft sobre Trace Flag 4199 é um pouco confuso:

...qualquer hotfix que possa afetar o plano de execução de uma consulta deve ser controlado por um sinalizador de rastreamento. Exceto para correções de bugs que podem causar resultados incorretos ou corrupção, esses hotfixes são desativados por padrão e um sinalizador de rastreamento é necessário para habilitar a correção.

NOTA: Estou assumindo que um "hotfix" é uma atualização cumulativa (também conhecida como "CU"). Se eu estiver errado, por favor, deixe um comentário.

Então... suponhamos que eu esteja executando o Service Pack mais recente. Os SPs incluem todas as correções dos CUs anteriores. Os hotfixes estão ativados para SP's (ou mesmo RTM's )? Ou o Trace Flag 4199 ainda seria necessário?

sql-server execution-plan
  • 2 2 respostas
  • 967 Views

2 respostas

  • Voted
  1. Best Answer
    Aaron Bertrand
    2015-03-27T15:05:45+08:002015-03-27T15:05:45+08:00

    Nesse contexto, você deve considerar "hotfix" como qualquer correção que acabou em um Service Pack, atualização cumulativa ou hotfix sob demanda e está sob a jurisdição deste sinalizador de rastreamento. Essas correções estão todas nas compilações mais recentes de cada versão principal com suporte, mas não são usadas, a menos que o sinalizador de rastreamento esteja ativado. Isso porque, em alguns casos, as "correções" podem realmente levar a regressões (e pior desempenho) - e as pessoas não devem esperar ter grandes variações na geração do plano apenas porque aplicaram uma atualização ou service pack.

    Não tenho certeza se esta é uma lista exaustiva, mas este artigo lista muitos dos 41xx TFs que finalmente ficaram sob o guarda-chuva 4199. O PDF v4 disponibilizado nesta postagem do blog pode conter mais sinalizadores (não verifiquei), mas certamente contém mais informações sobre várias das correções individuais.

    Em algum momento no futuro, suspeito que todos os aprimoramentos do TF4199 serão ativados por padrão em uma nova versão principal completa (mas não em um service pack ou CU). Talvez eles forneçam um sinalizador de rastreamento para desativá-los, assim como você pode desativar o novo estimador de cardinalidade.

    • 5
  2. Joel
    2017-04-05T14:27:07+08:002017-04-05T14:27:07+08:00

    Trabalho na equipe do SQL Server Tiger na Microsoft, responsável por gerar a maioria dos hotfixes mencionados acima. Um hotfix é qualquer coisa que altera o software após o RTM (lançamento para fabricação), incluindo CUs, Service Packs (que incluem todos os CUs lançados até algumas semanas antes do lançamento do Service Pack), GDRs (correções críticas de segurança) e ODs (On Exija hotfixes).

    Qualquer correção que termine sob o guarda-chuva 4199 deve ser habilitada por padrão em uma versão futura do SQL Server, em um nível de compatibilidade futuro, pois espera-se que sejam melhorias na grande maioria dos casos. No entanto, como qualquer coisa onde existem milhões de usuários, pode haver mudanças de plano que beneficiam a maioria das pessoas, mas prejudicam uma minoria de usuários por um motivo ou outro. Portanto, pedimos aos usuários que ativem explicitamente qualquer alteração de código que possa alterar os planos usando o traceflag 4199, a menos que essa alteração afete a exatidão dos resultados, segurança ou corrupção.

    Uma observação (que faltou na resposta de Aaron acima) é que, para cada novo lançamento, temos um novo nível de compatibilidade que, de certa forma, redefine o sinalizador 4199. Quaisquer correções lançadas no momento em que o SQL Server 2016 foi ajustado para RTM devem estar presentes por padrão no nível de compatibilidade 130 de 2016. Se 4199 não estiver habilitado, você pode voltar ao comportamento de 2014, bom ou ruim, alterando o nível de compatibilidade do banco de dados para 120. No entanto, uma vez que 4199 é ativado no servidor, você obtém todas as correções, seja qual for o nível de compatibilidade. Quaisquer correções após o lançamento do RTM serão novamente protegidas sob 4199.

    TL;DR: Nenhuma correção de alteração de plano é habilitada após o RTM sem habilitar o sinalizador de rastreamento 4199, independentemente do service pack ou nível de CU. Na próxima versão RTM, todas as correções 4199 existentes serão habilitadas por padrão e o processo será reiniciado.

    • 3

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
subwaysurfers
my femboy roommate

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve