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 / 305241
Accepted
George K
George K
Asked: 2021-12-22 08:10:20 +0800 CST2021-12-22 08:10:20 +0800 CST 2021-12-22 08:10:20 +0800 CST

Para onde os dados da tabela temporária vão após a criação?

  • 772

Tanto quanto eu posso entender temp_buffersa configuração serve para armazenar dados de tabelas temporárias.

Mas como eu criei uma tabela temporária imediatamente os arquivos são criados para ela PGDATAjunto com o banco de dados principal. Então gostaria de ajuda em várias questões.

  1. O que acontece com
    um. dados da tabela temporária se temp_buffers é suficiente para armazenar dados da tabela temporária?

    b. dados da tabela temporária se temp_buffers não for suficiente para armazenar dados da tabela temporária?

  2. Existe algum caso em que a temp_buffers configuração não suficiente acaba derramando pgsql_tmp?

postgresql postgresql-extensions
  • 1 1 respostas
  • 232 Views

1 respostas

  • Voted
  1. Best Answer
    Melkij
    2021-12-22T12:02:13+08:002021-12-22T12:02:13+08:00

    As entradas em pg_class, pg_attributes(e outros dados relacionados em pg_catalog) junto com arquivos relacionados vazios são sempre criados durante cada arquivo create temp table. Não posso me referir a um lugar no código-fonte do postgresql onde esse comportamento seria claramente visível. A criação de arquivos está muito longe de ser create temp table. É possível começar a ler a partir daqui

    Os dados gravados nessas tabelas temporárias serão armazenados em temp_buffers, uma estrutura de memória especial na memória privada do backend. Funciona como shared_buffers, mas muito mais simples, porque não nos importamos com acesso simultâneo e recuperação de tais dados temporários após uma falha.

    Se temp_buffersnão for suficiente para dados - as páginas antigas dentro da temp_buffersárea serão despejadas e gravadas nos arquivos de relação correspondentes.

    Existe algum caso em que a configuração de temp_buffers não seja suficiente para o pgsql_tmp?

    Não nunca. As tabelas temporárias explícitas são armazenadas no diretório regular do banco de dados com o t<backendOID>_prefixo visível nos nomes dos arquivos (como $PGDATA/base/13709/t3_226351).


    Por favor, não crie ou elimine tabelas temporárias frequentemente no postgresql (dezenas de vezes por segundo). Isso causa inchaço no catálogo do sistema e, portanto, torna as consultas mais lentas. Tabelas temporárias não são "livres" no postgresql.

    • 4

relate perguntas

  • Posso ativar o PITR depois que o banco de dados foi usado

  • Práticas recomendadas para executar a replicação atrasada do deslocamento de tempo

  • Os procedimentos armazenados impedem a injeção de SQL?

  • Sequências Biológicas do UniProt no PostgreSQL

  • Qual é a diferença entre a replicação do PostgreSQL 9.0 e o Slony-I?

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