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 / 3311
Accepted
JNK
JNK
Asked: 2011-06-15 09:44:13 +0800 CST2011-06-15 09:44:13 +0800 CST 2011-06-15 09:44:13 +0800 CST

Indicações de custos de operador obscenamente altos no plano de consulta?

  • 772

Tenho um processo ETL mensal que é muito complicado de explicar aqui, mas basicamente obtemos uma grande quantidade de dados do cliente, carregamos em massa em várias tabelas e, em seguida, executamos uma série de processos de criação.

O volume total de dados é grande, adicionamos 25-30 milhões de registros mensalmente à maior tabela, que tem cerca de 700 milhões de registros no total. Existem tabelas de suporte de registros de 2m-300m cada também. O total de dados para este conjunto é de cerca de 3,5 TB.

Este mês, alguns processos estão demorando exponencialmente mais do que o normal. Um exemplo é um proc que normalmente é concluído em 30 minutos, demorou cerca de 40 horas antes de eu matá-lo (ainda não havia sido concluído).

Nem todos os processos são afetados e alguns são executados ainda mais rápido do que o normal.

Obviamente, a causa raiz está além do escopo de algo que posso perguntar aqui, mas há algo que me incomoda:

Temos planos de consulta reais exibidos em milhões de % para operadores individuais.

Como uma varredura de índice clusterizado para 791,358,704%, uma junção de mesclagem para 75,566,494%, etc. Isso ocorre em vários planos de consulta e esses são planos retirados de sys.dm_exec_query_plan.

Esses planos de consulta são indicativos de algum outro problema maior?

Tenho certeza de que o problema não está nas estatísticas desatualizadas - executamos verificações completas em todas as tabelas principais e reconstruí manualmente a maior tabela e o banco de dados com pré-dimensionamento para eliminar a fragmentação.

sql-server sql-server-2008
  • 1 1 respostas
  • 1108 Views

1 respostas

  • Voted
  1. Best Answer
    Sankar Reddy
    2011-06-18T07:22:57+08:002011-06-18T07:22:57+08:00

    JNK,

    Você quis dizer algo assim?

    http://sankarreddy.com/wp-content/uploads/2011/03/CropperCapture2.jpg

    Este é um plano de execução estimado gerado com base nas estatísticas das ferramentas do cliente e observe que NÃO é um problema de mecanismo. Se você deseja que o MSFT corrija esse problema, vote neste item de item de conexão.

    https://connect.microsoft.com/SQLServer/feedback/details/436184/huge-operator-cost-in-estimated-execution-plan

    Como você mencionou o SQL Server 2008, recomendo que você consulte as informações WAIT STATS quando o trabalho estiver sendo executado. Veja por que a execução NÃO está avançando e descubra o gargalo.

    http://blogs.technet.com/b/sqlos/archive/2008/07/18/debugging-slow-response-times-in-sql-server-2008.aspx

    Além disso, observe as informações de sys.virtualfilestats e veja se há atrasos de E/S significativos e também o uso de memória.

    HTH

    • 5

relate perguntas

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

  • Quanto "Padding" coloco em meus índices?

  • Existe um processo do tipo "práticas recomendadas" para os desenvolvedores seguirem para alterações no banco de dados?

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

  • Downgrade do SQL Server 2008 para 2005

Sidebar

Stats

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

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

    • 4 respostas
  • Marko Smith

    Como você mostra o SQL em execução em um banco de dados Oracle?

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

    Posso ver Consultas Históricas executadas em um banco de dados SQL Server?

    • 6 respostas
  • Marko Smith

    Como uso currval() no PostgreSQL para obter o último id inserido?

    • 10 respostas
  • Marko Smith

    Como executar o psql no Mac OS X?

    • 11 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
  • Marko Smith

    Passando parâmetros de array para um procedimento armazenado

    • 12 respostas
  • Martin Hope
    Manuel Leduc Restrição exclusiva de várias colunas do PostgreSQL e valores NULL 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler Quando uma chave primária deve ser declarada sem cluster? 2011-11-11 13:31:59 +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
    BrunoLM Guid vs INT - Qual é melhor como chave primária? 2011-01-05 23:46:34 +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
  • Martin Hope
    Patrick Como posso otimizar um mysqldump de um banco de dados grande? 2011-01-04 13:13:48 +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