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
Rohan Dvivedi
Asked: 2024-12-27 16:40:58 +0800 CST

Por que classificar uma tabela (carregada com dados aleatórios) é mais rápido do que classificar dados aleatórios?

  • 8

Quero executar um benchmark de classificação de registros aleatórios usando algoritmo externo merge sort no Postgresql. Então, tentei as 2 maneiras a seguir (uma logo após a outra, mantendo todos os parâmetros/configurações iguais):

Tentativa 1:

CREATE TABLE test(id BIGINT, name varchar(200));
INSERT INTO test (id,name) SELECT (random() * 1000000), concat(CONCAT(md5(random()::text), md5(random()::text))) FROM generate_series(1, 1000000) as t;

explain analyze select * from test order by id, name;
                                                            QUERY PLAN                                                             
-----------------------------------------------------------------------------------------------------------------------------------
 Gather Merge  (cost=41486.43..63526.06 rows=188898 width=426) (actual time=76.477..207.253 rows=1000000 loops=1)
   Workers Planned: 2
   Workers Launched: 2
   ->  Sort  (cost=40486.40..40722.52 rows=94449 width=426) (actual time=73.418..101.593 rows=333333 loops=3)
         Sort Key: id, name
         Sort Method: external merge  Disk: 29744kB
         Worker 0:  Sort Method: external merge  Disk: 26008kB
         Worker 1:  Sort Method: external merge  Disk: 25512kB
         ->  Parallel Seq Scan on test  (cost=0.00..14278.49 rows=94449 width=426) (actual time=0.011..20.945 rows=333333 loops=3)
 Planning Time: 2.820 ms
 Execution Time: 227.090 ms
(11 rows)

Tentativa 2:

explain analyze SELECT (random() * 1000000) as id, concat(CONCAT(md5(random()::text), md5(random()::text))) as name
FROM generate_series(1, 1000000) as t order by id, name;
                                                                QUERY PLAN                                                                 
-------------------------------------------------------------------------------------------------------------------------------------------
 Sort  (cost=194348.85..196848.85 rows=1000000 width=40) (actual time=1707.086..1768.986 rows=1000000 loops=1)
   Sort Key: ((random() * '1000000'::double precision)), (concat(concat(md5((random())::text), md5((random())::text))))
   Sort Method: external merge  Disk: 81256kB
   ->  Function Scan on generate_series t  (cost=0.00..40000.00 rows=1000000 width=40) (actual time=55.734..1388.681 rows=1000000 loops=1)
 Planning Time: 0.191 ms
 JIT:
   Functions: 3
   Options: Inlining false, Optimization false, Expressions true, Deforming true
   Timing: Generation 0.338 ms (Deform 0.000 ms), Inlining 0.000 ms, Optimization 0.497 ms, Emission 11.837 ms, Total 12.672 ms
 Execution Time: 1841.843 ms
(10 rows)

Alguém pode me explicar por que classificar dados gerados aleatoriamente é mais lento do que classificar dados aleatórios semelhantes do disco?

Executei novamente as duas consultas com max_parallel_workers_per_gather = 0; a latência da primeira consulta caiu para 360 ms, enquanto, como esperado, a segunda consulta não mudou.

postgresql
  • 2 respostas
  • 729 Views
Martin Hope
Seeingstars
Asked: 2024-12-26 03:05:53 +0800 CST

Procedimento para importação de dados do parâmetro file_name

  • 5

Quero automatizar a criação e importação de tabelas para um grande número de arquivos csv no meu banco de dados. Quero simplesmente usar um parâmetro de texto para construir o caminho do arquivo dentro do procedimento. A instrução copy funciona bem se eu não usar uma variável como parte do nome do arquivo, mas recebo um erro na cláusula FROM.

Por favor ajude se puder. Obrigado. insira a descrição da imagem aqui

postgresql
  • 1 respostas
  • 10 Views
Martin Hope
PedroAsking
Asked: 2024-12-26 00:39:43 +0800 CST

O db_datareader pode consultar INFORMATION_SCHEMA?

  • 5

A documentação da Microsoft diz sobre db_datareadera função que:

db_datareader: Membros da função de banco de dados fixa db_datareader podem ler todos os dados de todas as tabelas e visualizações de usuário. Objetos de usuário podem existir em qualquer esquema, exceto sys e INFORMATION_SCHEMA.

A última frase é confusa para mim. Acho que significa que usuários cuja única função é db_datareader não podem consultar coisas dentro de INFORMATION_SCHEMA, mas criei um usuário com apenas essa função para um banco de dados e executei com sucesso consultas como abaixo naquele banco de dados:

SELECT * FROM INFORMATION_SCHEMA.TABLES

Isso não contradiz a última frase? Qual é a interpretação correta da última frase?

sql-server
  • 1 respostas
  • 29 Views
Martin Hope
elfcheg
Asked: 2024-12-25 15:41:52 +0800 CST

É aceitável renomear o banco de dados padrão como postgres?

  • 5

Descobri recentemente que um dos nossos sistemas usa o banco de dados postgres padrão como... bem, banco de dados.

Quero mover todos os dados para outro db no mesmo cluster. Mas o banco de dados é relativamente grande e o sistema é um tanto 24/7.

Talvez eu pudesse simplesmente renomear o banco de dados postgres? E então criar outro chamado postgres e usá-lo como banco de dados de manutenção.

Isso parece algo inseguro de se fazer e minha intuição diz que devo continuar com os métodos tradicionais de despejo/restauração.

Ou talvez eu esteja exagerando?

postgresql
  • 1 respostas
  • 37 Views
Martin Hope
Richard Dao
Asked: 2024-12-24 10:13:19 +0800 CST

Como o SQL Server manipula a memória dinamicamente?

  • 5
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Database Administrators Stack Exchange. Migrada ontem .

Contexto: Tenho uma instância do SQL Server em execução em uma de nossas VMs com 64 GB de memória. Atualmente, há um limite máximo de 60 GB e um limite mínimo de 0 GB. O SQL Server é o único aplicativo em execução no servidor que consome memória significativa.

Recentemente, lancei um recurso que faz consultas caras e repetidas ao SQL Server e, sempre que há muitos usuários usando o recurso, o uso de memória aumenta conforme o esperado. Não cheguei nem perto do limite, mas estou curioso para saber o que acontece quando nos aproximamos dele.

De acordo com a documentação da MS, li que o SQL Server manipula dinamicamente a memória para uso conforme necessário, mas não consegui encontrar nada sobre a lógica na qual o SQL Server libera memória dinamicamente.

Questões:

  1. Ele começa a liberar memória antes de atingir o limite especificado? O que (mais) aciona a liberação de memória?
  2. Como o SQL Server determina qual memória liberar? Ele libera memória de maneira FIFO?

Estou esquecendo completamente de algum ponto?

sql-server
  • 1 respostas
  • 78 Views
Martin Hope
Amessihel
Asked: 2024-12-24 00:22:44 +0800 CST

Como criar adequadamente um histórico de associação entre vários grupos?

  • 5

Estou procurando projetar um aplicativo (Python com sqlite) que lide com alguns colaboradores que se movem entre vários grupos ao longo do tempo.

Meu design atualmente se parece com (PK em negrito, FK em itálico, ambos se um FK fizer parte do PK):

  • Grupo( Id , Nome)
  • Contribuidor ( ID , Nome, Primeiro Nome)
  • Ação( ActionId , Nome)
  • ContributorAction ( ContributorId , ActionId , Data)
  • Associação ( GroupId , ContributorId , StartDate , EndDate )

Meu objetivo é manter um histórico de associações para recuperar o grupo de associação correto de um colaborador no momento de uma determinada contribuição.

Fazer isso envolve o uso de colunas de data em uma chave primária (tabela Membership). No entanto, EndDatepode ser NULLpara a associação atual de um colaborador, e eu li que isso pode não ser uma prática boa (ou mesmo permitida).

Perdi alguma coisa aqui para obter pelo menos o design 3NF?

database-design
  • 1 respostas
  • 20 Views
Martin Hope
user322160
Asked: 2024-12-23 12:33:04 +0800 CST

É possível encontrar/criar arquivos de configuração para o SQL Server 2022 com CU, não RTM?

  • 5

É possível encontrar \ criar arquivos de instalação para o SQL Server 2022 com CU, não RTM? Motivo: Não é possível atualizar o SQL Server de 2019 para 2022 no cluster com AG e CDC devido a este bug: Corrige um problema no qual a aplicação de um patch na réplica secundária ou a execução de uma atualização no local falha se um banco de dados tiver a captura de dados de alteração (CDC) habilitada e estiver em um grupo de disponibilidade. https://learn.microsoft.com/en-us/troubleshoot/sql/releases/sqlserver-2022/cumulativeupdate6#2442348 Este bug foi corrigido no SQL Server 2022 CU6. Portanto, para atualizar meu cluster, preciso executar a instalação do SQL Server 2022 CU6, não do SQL Server 2022 RTM. Desative o CDC \ remova o AG - PROBLEMA MUITO GRANDE. Ou há alguma outra maneira de resolver meu problema?

sql-server
  • 1 respostas
  • 19 Views
Martin Hope
Ironscar
Asked: 2024-12-21 20:08:32 +0800 CST

Postgres 16 Arquivamento contínuo e erro PITR "ponto de verificação inválido"

  • 5

Aqui está o que estou fazendo:

  1. Tenho um contêiner docker Postgres 16 que arquiva continuamente arquivos WAL
  2. Depois 00012e 00013foram arquivados, faço um backup base do banco de dados usando pg_basebackupo que gera um 00014..backuparquivo (esses são arquivos de exemplo e os WALs reais são mais longos, eu sei)
  3. Agora copio o backup base e os WALs arquivados em outro contêiner docker do Postgres 16 que foi criado recentemente a partir da mesma imagem docker (incluindo a versão)
  4. Eu faço postgresdo usuário o proprietário de todos esses arquivos
  5. Eu removo os WALs do pg_waldiretório de backup base e atualizo o restore_command postgresql.conf(além disso, também desfaço as configurações de arquivo que estavam lá no primário)
  6. Eu removo 00012os 00013WALs, pois eles já estão lá no backup base, então agora os WALs arquivados são apenas 00014e o arquivo .backup criado
  7. Eu crio um recovery.signalarquivo, que está vazio e no diretório de dados
  8. Então, finalmente, altero o nome do diretório atual pgdatae pgdata_inido diretório de backup para pgdataque ele atue como meu diretório de dados
  9. Então eu paro o contêiner e começo novamente, mas a inicialização do banco de dados falha devido a invalid checkpoint recordecould not find required checkpoint record

Alguém pode me dizer o que estou fazendo errado aqui?

backup
  • 1 respostas
  • 7 Views
Martin Hope
J. Mini
Asked: 2024-12-21 06:04:56 +0800 CST

Qual é a diferença entre "Processamento de consulta paralela em tabelas e índices particionados" e "Paralelismo de tabelas particionadas"?

  • 5

Em inglês simples, "Processamento de consulta paralela em tabelas e índices particionados" e "Paralelismo de tabela particionada" parecem a mesma coisa. No entanto, no SQL Server 2022, a Standard Edition tem "Paralelismo de tabela particionada" , mas não Processamento de consulta paralela em tabelas e índices particionados . Como os dois recursos diferem?

Fiz um esforço razoável para pesquisar na documentação, mas ainda não li todos os white papers. Não consegui aprender o que é cada recurso.

sql-server
  • 1 respostas
  • 40 Views
Martin Hope
Morten Madsen
Asked: 2024-12-19 16:22:11 +0800 CST

A RESTAURAÇÃO do DB2 no novo servidor afeta o banco de dados no servidor original

  • 5
Esta pergunta foi migrada do Stack Overflow porque pode ser respondida no Database Administrators Stack Exchange. Migrada ontem .

Minha pergunta é bem simples: um RESTORE do DB2 em um servidor pode afetar o servidor onde o backup se originou? Ou seja, o comando RESTORE do DB2 pode contatar o servidor original e fazer "algo" porque ele armazena o nome do servidor e as credenciais do DB no backup?

Estou usando o DB2 para Windows, v11.1 no SERVIDOR1 e v11.5 FP9 no SERVIDOR 2. Estou fazendo isso para estabelecer um sistema de teste em um servidor separado com os dados de produção.

A sequência de eventos foi a seguinte:

  1. Eu faço um BACKUP do DB2 no SERVER1
  2. Eu copio os arquivos de backup para SERVER2
  3. Eu faço um RESTORE do DB2 no SERVER2

No EXATO mesmo momento em que inicio a RESTAURAÇÃO do DB2 no SERVIDOR2, começo a receber os seguintes erros no db2diag no SERVIDOR1:

A validação da senha do usuário db2admin falhou com rc = -2146500483

Estou bastante perdido aqui e interrompi o processo por enquanto.

Uma teoria que tenho é que ambas as instalações do DB2 estão residindo no mesmo SAN, e talvez a RESTAURAÇÃO do DB2 seja tão intensa que interrompa a operação do DB2 SERVER1.

Obrigado, /Morten.

windows
  • 1 respostas
  • 9 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