Um vs. várias instâncias de banco de dados em um servidor SQL

1

Se eu tiver dois conjuntos de tabelas de banco de dados usados por um sistema

  • Tabelas que coletam resultados de algum processamento de dados. Na maioria das vezes, obtém muitas operações INSERT.
  • Tabelas que são usadas pelo aplicativo da web para gerar páginas e relatórios

Para esta questão, vamos supor que os conjuntos de tabelas são mutuamente exclusivos (talvez haja algum processo que migre dados do primeiro para o segundo conjunto periodicamente).

Verificarei uma diferença de desempenho entre as duas configurações a seguir

  • Os dois conjuntos de tabelas estão em um DB
  • Os dois conjuntos de tabelas estão em dois bancos de dados separados no mesmo servidor SQL
por Ron Harlev 28.08.2009 / 17:57

3 respostas

5

Eu diria um único DB. Você deseja que os conjuntos de tabelas sejam mantidos em sincronia com relação ao estado de backup / restauração, segurança de acesso do usuário, disponibilidade e assim por diante. Tabelas separadas também adicionam problemas com as soluções de indexação e envio de log.

Como você espera um padrão de acesso de E / S tão diferente, você deve colocar as tabelas em grupos de arquivos diferentes. Em seguida, você pode implantar cada grupo de arquivos no disco adequado para o seu padrão de E / S.

Com os dois conjuntos de tabelas em um único DB, alguns pontos de contenção são compartilhados, como as gravações de log. Mas isso não é uma preocupação para o caso que você descreve porque apenas a parte OLTP do aplicativo se preocupa com o log.

    
por 28.08.2009 / 19:56
1

Sim. Você deseja a opção B, para que o sistema operacional faça referência a dois arquivos de disco diferentes. Um banco de dados pode ser otimizado para gravação, o outro para leitura.

Ou você pode realizar o mesmo em um único banco de dados, se dividir suas tabelas em grupos de arquivos separados / arquivos separados.

    
por 28.08.2009 / 19:40
0

Will I see a performance difference between the two following setups

* The two sets of tables are in one DB
* The two sets of tables are in two separate DBs on the same SQL

server

Não - não, a menos que você separe os bancos de dados em discos rígidos diferentes (e até mesmo isso é discutível se isso afetaria o desempenho, já que não temos outras informações).

Portanto, remova o "desempenho" de sua lista de verificação mental do que você deve considerar neste design. Isso significa que a questão é um dos domínio - "Devo colocá-los no mesmo banco de dados ou bancos de dados diferentes" deve depender de como eles estão relacionados.

If I have two sets of database tables used by a system

* Tables that collect results of some data processing. Most of the time

get a lot of INSERT operations. * Tables that are used by the web application to generate pages and reports

For this question, lets assume the sets of tables are mutually exclusive (maybe there is some process that migrates data from the first to the second set periodically).

Eu não entendo o que você quer dizer com "os conjuntos de tabelas são mutuamente exclusivos". A partir da descrição, as tabelas parecem estar relacionadas (e por "relacionadas", quero dizer que elas devem ser agrupadas no mesmo banco de dados), uma vez que podem migrar periodicamente os dados entre elas. Como tal, acho que você provavelmente precisa de um banco de dados.

    
por 03.09.2009 / 19:13