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 / 17136
Accepted
RPK
RPK
Asked: 2012-04-27 22:19:44 +0800 CST2012-04-27 22:19:44 +0800 CST 2012-04-27 22:19:44 +0800 CST

Qual é o tamanho recomendado do Buffer Pool em um PC com 2 GB de RAM?

  • 772

Instalei o DB2 Express-C em um PC com 2 GB de RAM e executando o sistema operacional Windows Server 2008 R2. Ao criar um novo banco de dados, há uma opção para definir o tamanho do Buffer Pool com o padrão definido como 4K.

Qual é o tamanho do pool recomendado para a configuração mencionada acima?

Também quero saber se devo usar o Buffer Pool padrão ou um Buffer Pool separado para cada banco de dados.

db2 windows
  • 2 2 respostas
  • 1058 Views

2 respostas

  • Voted
  1. Best Answer
    Chris Aldrich
    2012-04-28T04:46:37+08:002012-04-28T04:46:37+08:00

    O tamanho padrão é 4K. Você também pode especificar 8K, 16K ou 32K. O tamanho do pool de buffers deve realmente ser baseado no tamanho de suas tabelas (ou seja, quantos bytes uma linha de dados pode conter). Se uma linha de seus dados não couber em uma página de 4K, ela não caberá em um buffer pool de 4K. E, portanto, você precisaria de maior.

    O mesmo também se aplica aos espaços de tabela (os "recipientes físicos" nos quais suas tabelas são armazenadas). Uma tabela que precisa de um buffer pool de 8K precisa residir em um espaço de tabela de 8K. E, na verdade, você também associaria esse espaço de tabela ao pool de buffers ....

    Dito isto, não apenas "dimensione demais" e vá para espaços de tabelas e buffer pools de 32K se você realmente tiver apenas tabelas de 4K. Você desperdiçará muito espaço em disco e memória.

    Além disso, você pode ter quantos buffer pools quiser (tenho certeza de que há um limite superior, embora eu não saiba de antemão). Mas você pode ter qualquer combinação deles. Você pode ter cinco pools de 4K, um pool de 8K, um pool de 16K e três pools de 32K.

    O mais importante é mais baseado no tamanho da sua mesa e na compreensão disso, conforme mencionado anteriormente.

    Embora, aqui está a coisa boa... depois de criar seus pools de buffer e espaços de tabela, o DB2 é inteligente o suficiente para colocar a tabela no espaço de tabela de tamanho correto (pendente que exista). Você pode especificá-lo em seu código DDL, mas o DB2 é inteligente o suficiente para colocar uma tabela de 8K em um espaço de tabela de 8K (e, portanto, também será associado a um buffer pool de 8K).

    OK ... agora para responder às suas duas últimas perguntas. Na verdade, não existe um tamanho "recomendado". O padrão de 4K é bom. A maioria das nossas tabelas onde trabalho se encaixam em um espaço de tabela 4K e buffer pool 4K.

    O que tendemos a fazer, porém, como prática recomendada... Configuramos nossos próprios espaços de tabela 4K, 8K e 32K e buffer pools (incluindo espaços de tabelas temporários para reorganizações). Por que não configuramos 16K, não tenho certeza. Mas configuramos vários tamanhos em todos os nossos bancos de dados. Dessa forma, se algum desenvolvedor criar uma tabela maior que 4K, ela será automaticamente colocada no ritmo de tabelas maiores (e, portanto, buffer pool).

    Espero que isso tenha sido claro o suficiente para você. Também achei este artigo útil com meu próprio entendimento de pools de buffers e espaços de tabela.

    • 2
  2. tytchong
    2012-06-02T14:47:16+08:002012-06-02T14:47:16+08:00

    Além do bufferpool, também há outro consumidor da memória de 2 GB do DB2. Coisas como UTILHEAP, SORTHEAP, etc. Portanto, na verdade, há mais a considerar no quadro geral do que apenas bufferpool. Já pensou em usar AUTOMÁTICO? O DB2 tem um recurso chamado Memória de autoajuste (STMM), o que você faz é configurar sua memória de instância para ser AUTOMÁTICA ou algum valor fixo e o gerenciador STMM descobrirá as configurações de memória para você na hora.

    Se você não estiver interessado em STMM (pode não estar disponível para Express-C), as coisas que você deve considerar ao projetar um bufferpool é quanto para sua carga de trabalho sobre quantos dados você precisaria para estar na memória. Por exemplo, se você tem uma tabela ativa que precisa ser acessada o tempo todo e toda a tabela precisa estar no bufferpool, é melhor ter um bufferpool grande o suficiente para que você possa manter a maioria das páginas dessa tabela.

    Há uma prática recomendada que sugere separar os dados temporários de seus dados permanentes. Portanto, se você fizer muitas coisas que envolvem o uso de dados temporários, como classificação, temperatura do usuário etc., é melhor separar os dois bufferpools para que os dados temporários não irá poluir seu bufferpool de dados reais.

    Espero que isto ajude.

    • 0

relate perguntas

  • Emule o comportamento do REGEXP no DB2 SQL

  • Como posso configurar o PostgreSQL 9.0 para iniciar automaticamente no Windows XP?

  • BLOB no DB2 v9 no z/OS

  • O Oracle pode ser instalado no Windows sem ser um administrador?

  • O que significa HSJOIN em um plano de explicação?

Sidebar

Stats

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

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

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

    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

    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
    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
    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
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +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