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 / user-76835

Mike Petrak's questions

Martin Hope
Mike Petrak
Asked: 2024-05-23 21:28:47 +0800 CST

Instância Gerenciada de SQL do Azure: 1. tempos de compilação iniciais excessivos, levando a tempos limite do aplicativo e 2. manutenção de partição: arquivo de dados de longa duração e inchaço

  • 7

Estamos tendo alguns problemas que nos impedem de entrar em operação com uma nova plataforma de camada SQL 2016 Std Ed local para Azure SQL Managed Instance Business Critical, e gostaria de saber se alguém teve problemas semelhantes e teve conselhos para nós. Nossos problemas são:

  1. O problema nº 1 é a compilação inicial excessiva do plano de consulta para consultas em pelo menos uma dúzia de procedimentos armazenados e outras consultas (40 segundos a 174 segundos... Já vi exemplos de até 725 segundos!). Isso está levando a tempos limite de aplicativos frequentes e aleatórios , já que a maioria está definida como padrão de 30 segundos. Para esclarecer, não se trata de recompilações excessivas, mas de um CompileTime muito alto no plano de consulta.

As consultas e informações em https://erikdarling.com/are-long-compile-times-bringing-you-down/ foram muito úteis para identificar essas consultas (li https://littlekendra.com/2024/ 03/05/long-compilers-who-time-out-not-in-query-store/ também). Também vemos alguns tempos limite de compilação: https://www.brentozar.com/blitzcache/compilation-timeout/ .

Estamos tentando ajustar essas consultas e reduzir sua complexidade, pois nos disseram que isso deveria reduzir o CompileTime. Também tentamos atualizar o nível AZ MI para Business Critical, adicionando vCores e ajustando configurações de instância e banco de dados por meses.

Estamos trabalhando em um caso Sev B com a Microsoft há várias semanas e recebemos algumas dicas, mas ainda sem resolução. O suporte de nível 3 recomendou garantir que as consultas de tempo limite de compilação não tenham planos forçados, porque forçar o plano permite que o SQL Optimizer gaste 3x a duração do normal para compilar, o que aumenta a probabilidade de tempo limite. A única coisa que estava forçando os planos é o ajuste automático, que se aplica ao MI apenas para a opção FORCE_LAST_GOOD_PLAN de acordo com https://learn.microsoft.com/en-us/sql/relational-databases/automatic-tuning/automatic-tuning?view= sql-server-ver16 e https://learn.microsoft.com/en-us/azure/azure-sql/database/automatic-tuning-overview?view=azuresql . Desativamos FORCE_LAST_GOOD_PLAN de acordo com a recomendação deles e isso ajudou alguns dos CompileTimes altos, mas não todos. Não estamos forçando planos com o guia de plano (USE PLAN N'<xml_plan>') ou forçando manualmente no Query Store. Eles recomendaram ajustar consultas para reduzir sua complexidade e executar um DUMP se desligar FORCE_LAST_GOOD_PLAN não funcionar. Espero agendar uma sessão de trabalho com a equipe de desempenho para solucionar esses problemas.

Atualização: durante nossa ligação em 28/05 com suporte de nível 3, percebemos que até mesmo algumas consultas triviais como SELECT COUNT(*) FROM Table estavam usando OptimizationLevel = FULL em vez de TRIVIAL. O suporte da Level 3 disse que não havia nenhuma configuração que pudéssemos alterar para afetar isso, mas mencionaria isso à equipe de produto.

  1. Nosso trabalho de manutenção de partição que faz ALTER PARTITION SPLIT é executado por muito mais tempo (dias a semanas) no MI BusCrit em comparação com o mesmo código no SQL 2016 Std Ed. Ele também consome muito espaço extra usado no arquivo de dados (e log) durante o processamento, o que não acontece no SQL 2016, como um banco de dados de 52 GB que cresceu para 588 GB! enquanto o trabalho estava em execução. O inchaço (e o desempenho?) pode estar parcialmente relacionado à Recuperação Acelerada de Banco de Dados (ADR), uma vez que está no SQL 2019+ e AZ MI: Tamanho da tabela na Instância Gerenciada de SQL do Azure versus SQL Server Local (consulte também https://learn. microsoft.com/en-us/sql/relational-databases/accelerated-database-recovery-concepts?view=sql-server-ver16 ).

Estamos revisando o algoritmo que herdamos, pois parece não seguir as práticas recomendadas em https://learn.microsoft.com/en-us/sql/t-sql/statements/alter-partition-function-transact-sql?view =sql-server-ver16 "Sempre mantenha partições vazias em ambas as extremidades do intervalo de partições. Mantenha as partições em ambas as extremidades para garantir que a divisão da partição e a mesclagem da partição não incorram em nenhuma movimentação de dados. A divisão da partição ocorre no início e a mesclagem da partição ocorre no final. Evite dividir ou mesclar partições preenchidas A divisão ou mesclagem de partições preenchidas pode ser ineficiente porque a divisão ou mesclagem pode causar até quatro vezes mais geração de log e também pode causar problemas graves. travamento." Mas estamos intrigados por que o mesmo código é executado por muito mais tempo e incha excessivamente o arquivo de dados no MI, quando isso não aconteceu no SQL 2016 Std Ed.

Outra recomendação que consideramos é migrar para VMs do Azure com SQL, mas isso adicionará meses ao lançamento da nossa nova plataforma para configurar, testar e operacionalizar esse ambiente, pois não temos nenhuma VM do Azure no momento. Também teremos que operacionalizar patches, backups, etc.

Eu aprecio sua ajuda! Mike

execution-plan
  • 3 respostas
  • 305 Views
Martin Hope
Mike Petrak
Asked: 2015-10-14 08:03:30 +0800 CST

SQL Native Client e desconexões de rede

  • 2

O SQL Native Client fornece suporte para manter uma conexão persistente na rede no nível do driver se houver uma desconexão momentânea da rede, como um erro 999? Nossos aplicativos são escritos em PowerBuilder (versões 12.5 e 6.5) e suportam SQL Server 2005 - 2014 e Express Edition - Enterprise Edition.

Eu li sobre a propriedade KeepAlive em http://blogs.msdn.com/b/sql_protocols/archive/2006/03/09/546852.aspx , https://technet.microsoft.com/en-us/library/ms190771 (v=sql.120).aspx e http://www.databaseskill.com/2357386/ . Isso ajudaria nessa situação?

Também consultei o site da Microsoft https://msdn.microsoft.com/en-us/library/ms130822(v=sql.120).aspx , que lista todas as propriedades da string de conexão do SQL Native Client. Encontrei Failover_Partner, mas isso é para espelhamento de banco de dados, e encontrei MultiSubnetFailover, mas isso é para Always On Availability Groups (AG).

Eu também olhei em http://www.connectionstrings.com/sql-server/ .

Obrigada! Mike Petrak

sql-server network
  • 1 respostas
  • 714 Views

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