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 / 315977
Accepted
Kate M
Kate M
Asked: 2022-08-24 17:24:26 +0800 CST2022-08-24 17:24:26 +0800 CST 2022-08-24 17:24:26 +0800 CST

Procurando por uma alternativa de mecanismo de banco de dados baseado em arquivo para o MS Access

  • 772

Minha empresa está acorrentada a este formato MS Access '97 .MDB que temos desde o início dos tempos. Nosso esquema é hierárquico, com vários relacionamentos um-para-muitos. Estamos em um ponto em que estamos procurando alternativas, pois a lentidão e a falta de jeito geral do Access estão começando a afetar nossa produtividade.

Nossos métodos "modernos" de acesso ao banco de dados envolvem DAO.Net e grandes quantidades de cache baseado em hash. O tipo .NET System.Collections.Generic.Dictionary foi uma dádiva de Deus aqui, porque sem ele, não sei como faríamos nosso trabalho em tempo hábil. Temos vários projetos, cada um com um arquivo de banco de dados associado a ele (às vezes vários), e tendemos a interagir com eles de duas maneiras: o banco de dados é criado manualmente (usando nosso editor interno) ou gerado usando um programa que pega os dados que recebemos de outra empresa, em algum outro formato, e os converte para o nosso formato.

Em ambos os casos, nossa biblioteca .NET comum carrega todo o banco de dados em tabelas de hash por meio do Dicionário e resolve os relacionamentos de objeto com o código procurando valores na tabela de hash por ID. Ao gerar automaticamente o banco de dados, usamos outro conjunto de tabelas de hash para determinar se um objeto já existe no cache antes de adicioná-lo. Quando terminarmos de analisar os dados de origem, iniciaremos uma operação de inserção em massa multithread. Fazemos tudo isso porque qualquer outro método de acesso ao banco de dados é muito lento.

Espero ter dado contexto suficiente à minha pergunta: Existe um mecanismo de banco de dados por aí cuja velocidade de consulta possa rivalizar com as tabelas de hash como o que estou usando? O uso de memória e disco não é uma preocupação, esses bancos de dados existem apenas em máquinas de desenvolvedor, nós os convertemos para um formato diferente para uso com nosso software. Eu só quero me livrar das minhas tabelas de hash, mas não quero sacrificar a velocidade para fazer isso.

ms-access c#
  • 1 1 respostas
  • 44 Views

1 respostas

  • Voted
  1. Best Answer
    J.D.
    2022-08-24T19:54:10+08:002022-08-24T19:54:10+08:00

    " Existe um mecanismo de banco de dados por aí cuja velocidade de consulta possa rivalizar com a de tabelas de hash como o que estou usando? " - Sim, quase qualquer sistema de gerenciamento de banco de dados relacional moderno (RDBMS), porque eles foram cuidadosamente construídos para utilizar os dados apropriados estruturas e algoritmos de mesclagem de dados, considerando o contexto e as estatísticas dos dados. Sempre usar tabelas de hash, dicionários e várias pesquisas de ID singleton nem sempre é a maneira mais eficiente de armazenar, ler e combinar dados.

    Minha opinião pessoal é que o MS Access é péssimo como sistema de banco de dados, ainda mais que você está usando a versão '97. Portanto, quase qualquer RDBMS moderno deve ser uma atualização. Você provavelmente só precisará mudar os paradigmas para armazenar os bancos de dados em um servidor dedicado em vez de localmente nas máquinas clientes, pois essa é a prática padrão para RDBMS modernos.

    Há uma infinidade de opções para escolher por aí, mas eu recomendo escolher uma opção convencional para que haja bastante suporte e documentação sobre como utilizá-la. Como você já está usando a pilha deles, a Microsoft oferece o SQL Server como solução, que é altamente funcional e bem projetada, mas é um software corporativo, portanto, pode custar dinheiro para usar. A Express Edition do SQL Server é gratuita com algumas limitações, sendo a mais aparente uma limitação de 10 GB de tamanho por banco de dados. Outras opções baratas e gratuitas também incluem PostgreSQL e MySQL.

    Outro benefício notável ao mudar para um RDBMS moderno provavelmente incluirá simultaneidade aprimorada.

    • 0

relate perguntas

  • Obtenha dados do banco de dados e coloque-os de volta em uma nova folha de dados

  • O MS Access exibe todas as colunas nas tabelas do SQL Server como "excluídas"

  • Questão de simultaneidade?

  • Usando uma consulta de parâmetro para gerar gráficos em relatórios do MS Access

  • Consultar o banco de dados Linked Access no compartilhamento de rede via SQL Job Agent

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