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 / 问题

All perguntas(dba)

Martin Hope
DBA Greg14
Asked: 2023-11-06 22:39:52 +0800 CST

práticas recomendadas para atualização de versão SQL lado a lado com grupos de disponibilidade

  • 5

Estamos tentando nossa primeira atualização lado a lado de um AG de 2 nós (várias sub-redes, edição empresarial) do sql 2016 para 2019. Tenho algumas perguntas sobre a melhor forma de abordar isso:

  1. Criamos um novo cluster e AG com sql2019 e usamos o envio de log para preencher e passar para o novo ambiente?
  2. Adicionamos 2 novos nós de 2019 (1 em cada sub-rede existente) e os configuramos como secundários no AG existente? Eu sei que normalmente você não pode misturar versões em um AG, mas para uma atualização como essa eu li que é feita sem problemas, desde que você não tente fazer failback para os nós da versão mais antiga.
  3. Como os ouvintes do AG são tratados no item 2? Acho que deveríamos ser capazes de usar os ouvintes existentes, já que os novos nós estão nas mesmas sub-redes da versão antiga dos nós SQL.

Não consigo encontrar nenhum guia passo a passo para isso on-line quando estamos lidando com clusters e AGs

sql-server
  • 1 respostas
  • 50 Views
Martin Hope
Googlebot
Asked: 2023-11-06 22:12:56 +0800 CST

INSERINDO milhões de arquivos em uma tabela

  • 5

Eu arquivo milhões de arquivos XML (1-100 MB cada) em uma tabela com a estrutura de

CREATE TABLE Data
(
    ID int(11) unsigned NOT NULL,
    XML longtext COMPRESSED,
    PRIMARY KEY(ID)
) ENGINE=Aria DEFAULT CHARSET=utf8 COLLATE utf8_general_ci ROW_FORMAT=DYNAMIC;

INSERT INTO Data (ID,XML) VALUES ($id,LOAD_FILE('file.xml'));

O processo é lento, cerca de 2 a 5 inserções/segundo. O banco de dados inteiro seria muito grande para uma unidade SDD, e eu crio o banco de dados em um HDD separado, mas movo os arquivos em lotes para uma unidade SDD para tornar a leitura mais rápida. Observe que a velocidade do disco não é a etapa determinante da taxa, pois os dados XML são enormemente reduzidos pela compactação.

Tentei InnoDBobter inserção simultânea, mas o tamanho do InnoDB ibd é três vezes maior que o ARIA/MyISAM, e o InnoDB é muito mais lento no HDD.

Eu tentei ROCKSDB, mas não pode ser criado em um disco separado, pois existe um único diretório para todas as tabelas. Além disso, o gerenciamento de memória do ROCKSDB é péssimo para tais cenários (ou não consegui encontrar a configuração adequada).

Não testei ARCHIVEo desempenho do motor, pois ele precisa IDestar em ordem.

Minha solução atual é INSERT simultaneamente em uma tabela temporária do InnoDB no SSD e depois INSERT INTO SELECTda tabela InnoDB para a tabela ARIA no HDD. O problema é a integridade e o atraso no esvaziamento do InnoDB e no início do processo INSERT simultâneo.

Agradeço qualquer solução possível.

query-performance
  • 2 respostas
  • 45 Views
Martin Hope
J. Mini
Asked: 2023-11-06 21:52:48 +0800 CST

Existe uma garantia mais forte de registro mínimo ao executar INSERT INTO [...] WITH (TABLOCK) em um heap do que em uma árvore B?

  • 5

A documentação lista os seguintes requisitos para importações em massa com registro mínimo

  • O modelo de recuperação do banco de dados é definido como simples ou registrado em massa.
  • A tabela de destino é um heap vazio ou não vazio.
  • A tabela de destino não é usada na replicação.
  • A dica TABLOCK é especificada para a tabela de destino.

(ênfase minha).

Observe que nenhuma das opções acima menciona árvores B. Apesar disso, tanto minha experiência quanto o livro T-Sql Querying de Iztik Ben-Gann afirmam que TABLOCKárvores B ed vazias receberão inserções em massa.

Existe uma garantia mais forte de registro mínimo ao executar INSERT INTO [...] WITH (TABLOCK)em um heap do que em uma árvore B? Caso contrário, não consigo entender por que a documentação parece silenciosa sobre o comportamento da árvore B.

sql-server
  • 1 respostas
  • 76 Views
Martin Hope
ThomasDB
Asked: 2023-11-06 21:00:16 +0800 CST

Requisitos de memória do SQL Server

  • 9

Neste momento me deparo com alguns problemas de desempenho de banco de dados para uma aplicação SaaS. Durante o dia, as estatísticas de espera do RESOURCE_SEMAPHORE disparam de 30 a 60 segundos por 1 ou 2 minutos. Durante esse período, também recebo um ou mais e-mails de alerta de Gravidade 17 de nosso servidor com o aviso "Não há memória de sistema suficiente no pool de recursos 'interno' para executar esta consulta".

Já resolvemos as consultas mais ineficientes que tinham grandes concessões de memória (concessões de 1,5 a 2,5 GB com apenas 5% ou menos de uso). Para identificar essas consultas, usamos sp_BlitzCache de Brent Ozar. Infelizmente, os problemas de desempenho ainda ocorrem após essas alterações.

Lembre-se de que neste momento temos um trabalho de agente que executa DBCC FREEPROCCACHE a cada 5 minutos. Isso torna o problema mais esporádico. Mudar este trabalho para ser executado a cada meia hora parece piorar os problemas. É claro que executar este trabalho tem outras implicações, como compilações mais altas/s e maior utilização da CPU, mas neste momento é uma solução do tipo "melhor dos dois mundos".

Receio que os problemas de pressão de memória sejam resultado do servidor configurado com memória RAM insuficiente. Esta suposição está correta ou esses problemas são criados por outra coisa?

Estatísticas do servidor

  • Servidor SQL 2022 (16.0.4085.2)
  • 6 processadores lógicos (DOP máximo = 4)
  • 16 GB de RAM total, configurado como 14 GB de memória máxima do servidor para SQL Server e 2 GB para sistema operacional
  • Um total de 1381 bancos de dados
  • Tamanho total do banco de dados: 302 GB
sql-server
  • 1 respostas
  • 508 Views
Martin Hope
Umang Pachaury
Asked: 2023-11-06 16:52:50 +0800 CST

A eliminação de uma tabela corrompida liberará espaço no MySQL

  • 6
Esta questão foi migrada do Stack Overflow porque pode ser respondida no Stack Exchange dos Administradores de Banco de Dados. Migraram ontem .

Temos uma tabela MyISAM em nosso banco de dados que possui cerca de 97 Gb de dados e resultou em 95% de utilização do disco. Devido a isso começamos a limpar os dados da tabela excluindo as linhas, mas isso também não resultou na limpeza do espaço.

Então lemos sobre como disparar o comando Otimizar tabela, mas devido à falta de espaço o comando foi interrompido o que resultou na corrupção da tabela.

Agora, minha pergunta é: se eliminarmos a tabela corrompida, isso liberará espaço em disco? A consulta descartada também exigirá uma quantidade significativa de espaço para ser executada, como a consulta otimizada?

mysql
  • 1 respostas
  • 37 Views
Martin Hope
Cydennn
Asked: 2023-11-05 20:27:21 +0800 CST

Um arquivo de log que cresce frequentemente deve ser armazenado como uma tabela ou um blob no banco de dados?

  • 6

Sou estudante de graduação e ainda não trabalhei com nenhum banco de dados, então peço desculpas se não entendi/utilizei mal algum termo. Minha pergunta vem de uma tarefa minha, mas esta é minha tentativa de aprender e não fazer o dever de casa para mim.

A tarefa, parafraseada:

O serviço de impressão de uma universidade permite que os alunos do campus carreguem seus arquivos no sistema e enviem os arquivos carregados para uma das impressoras da universidade para impressão... O sistema registra todas as impressões feitas por todos os alunos, registrando a identificação do aluno, qual impressora foi usada , o nome do arquivo de impressão, bem como a hora da impressão. Um administrador do sistema deve ser capaz de visualizar o arquivo de log filtrado para qualquer aluno, impressora e/ou período de tempo (que eu saiba, isso requer indexação).

Uma questão que me deparo é qual abordagem de armazenamento de dados (banco de dados ou sistema de arquivos) devo usar para os arquivos do aluno e o arquivo de log, sendo ambos dados de crescimento frequente.

A partir desta pergunta do SO, concluí que os arquivos de atualização freqüentes são melhor armazenados como armazenamento do sistema de arquivos e, a partir desta pergunta, os arquivos podem ser armazenados em um banco de dados com blobs.

Minhas perguntas são:

  1. O arquivo de log deve ser armazenado no banco de dados ou no sistema de arquivos? (Ou acho que a questão determinante seria "É possível filtrar por vários valores sem indexação?")
  2. Se os arquivos dos alunos forem armazenados com um blob relacionado a um aluno na tabela do banco de dados, é possível que cada aluno tenha acesso apenas aos seus próprios arquivos?
  3. Por que o sistema de arquivos é mais adequado para arquivos que crescem com frequência?
  4. É possível (ou prático) que um servidor use banco de dados e sistema de arquivos?
database-design
  • 2 respostas
  • 54 Views
Martin Hope
Sergey Zolotarev
Asked: 2023-11-05 19:23:30 +0800 CST

Qual é a diferença entre FETCH FIRST e FETCH NEXT no PostgreSQL?

  • 7

Qual é a diferença entre FETCH FIRSTe FETCH NEXTno PostgreSQL? Os documentos simplesmente dizem

NEXT Busca a próxima linha

FIRST Busque a primeira linha da consulta

o que não é muita explicação. Criei uma tabela de amostra com linhas de amostra, executada

SELECT * from users
FETCH FIRST 2 ROWS ONLY;
SELECT * from users
FETCH NEXT 2 ROWS ONLY;

e obteve exatamente a mesma saída. É quase como se FETCH FIRSTe FETCH NEXTfossem apenas sinônimos de LIMIT(que, pelo que li, não faz parte do padrão SQL, ao contrário do FETCH [FIRST|NEXT])

Se os dois são iguais, por que a documentação não diz isso? Ou existem algumas diferenças, afinal?

Esta resposta do Stack Overflow implica que eles podem funcionar da mesma maneira em pelo menos alguns RDBMSes, especificamente no MS Server

postgresql
  • 1 respostas
  • 103 Views
Martin Hope
Kevin Meredith
Asked: 2023-11-04 21:43:04 +0800 CST

Mantendo o bloqueio entre COMMIT AND CHAIN?

  • 5

Estou escrevendo um aplicativo que processa trabalhos. Um trabalho faz duas coisas que não são transacionais: ParteA e ParteB. Ambos são idempotentes.

Um trabalho tem três status:

  • Criada
  • ParteA_Concluído
  • ParteB_Concluído

A lógica é mais ou menos assim:

BEGIN;
let jobId = randomUUID
INSERT INTO jobs (id, status) VALUES (jobId, 'Created');
COMMIT;

BEGIN;
do partA in application code (make HTTP request)
UPDATE jobs SET status = 'PartA_Done' WHERE id=?
COMMIT;

BEGIN;
do partB in application code (make HTTP request)
UPDATE jobs SET status = 'PartB_Done' WHERE id=?
COMMIT;

A ParteA pode ter êxito, mas não consegue atualizar a jobstabela. Uma tarefa cron de nova tentativa tentará novamente a conclusão, PartB_Done.

Se eu adicionasse mais de um cron job, ou seja, executando simultaneamente, há o risco de os cron jobs realizarem trabalho duplicado. Em particular, ambos os cron jobs poderiam ser refeitos PartA, PartBou ambos para o mesmo trabalho. Eu quero evitar isso.

Existe alguma maneira de executar o COMMIT, mantendo um FOR UPDATEbloqueio nas transações subsequentes na nova jobslinha que adicionei?

Achei que COMMIT AND CHAINfuncionaria, mas não tenho certeza do que fazer.

postgresql
  • 1 respostas
  • 32 Views
Martin Hope
Paradox
Asked: 2023-11-04 03:49:53 +0800 CST

A dica WITH (NOLOCK) é ignorada nas tabelas não-alvo de uma instrução UPDATE ou DELETE?

  • 5

Nos bancos de dados SQL Server, a dica de consulta WITH (NOLOCK) é ignorada nas tabelas de destino nas instruções UPDATE e DELETE. No entanto, isso também se aplica a tabelas incluídas em uma junção para atualização ou exclusão? Por exemplo, é:

update t
set value1 = 123
FROM mytable t
inner join othertable o with (nolock) on t.id = o.id

equivalente a:

update t
set value1 = 123
FROM mytable t
inner join othertable o on t.id = o.id
sql-server
  • 1 respostas
  • 63 Views
Martin Hope
Aleksandar
Asked: 2023-11-03 23:38:03 +0800 CST

AWS Blue/Green travado em "A criação da réplica foi cancelada devido à replicação externa"

  • 6

Estou tentando realizar uma atualização azul/verde do PostgreSQL 11.21 no AWS RDS.

O cluster de banco de dados não possui slots de replicação. No entanto, todas as tentativas falharam no Incompatible-createestado e a mensagem de log é "A criação da réplica foi cancelada devido à replicação externa".

Nada mais. Qual poderia ser o motivo desta mensagem de log? Não há informações adicionais, nem mesmo o Google tem nenhum resultado para esta mensagem.

postgresql
  • 1 respostas
  • 165 Views
Prev
Próximo

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