Tabelas SQL + comparação

Barata

I folded Myself
Boas.

Tenho aqui um problema sobre se hei-de fazer uma tabela única ou várias tabelas.

Tenho números, afectos a productos diferentes, que têm de ser lidos em intervalos de 1000, comparados, e guardados.

Estamos a falar de 400 produtos, o que por ano equivale a um máximo de 40 milhões de registos.

A estrutura da tabela é fixa. Isto é, quer opte por fazer 400 tabelas, quer opte por fazer apenas uma, a estrutura é igual.
Código:
ID  - referencia - numero - checkd - estado

A minha pergunta é, o que é mais eficiente a nivel de pesquisa? Uma tabela para todos os produtos, ou uma tabela para cada um deles?

SQL SERVER running.
 
Ter 400 tabelas relativas a produtos individuais não me parece uma boa ideia. Em termos de eficiência, eu diria que é melhor fazeres experiências (criando índices específicos, se necessário) com os tais 40 milhões de registos antes de pensares sequer em mudar a estrutura base.
 
Podes ter uma tabela com os produtos todos, a unica coisa que tens que garantir é que tens outras tabelas para ajudar ao filtro, ou seja, se queres obter o produto ID = 1 podes adicionar CAT_ID = 1

select PRODUTO from Produtos f , categorias d where f.id =d.id and f.id = 1 and d.cat_id = 1

para melhorares isto podes criar indices torna a cena mto mais rapida mas isto é suficiente
 
Cria 4 tabelas, em cada tabela adiciona até 10 milhões de registos..

Como a tabela tem apenas 4 campos, calculo que seja dados em string.. penso que funcionara bem.. é uma questão de testares.. A algum tempo a traz criei um plugin para um projecto .. que tinha uma BD com uma tablela com cerca de 16 milhões de dados em SQLite.. era um pouco lento o query a tabela tambem tinha muitos mais campos ..
 
Assim à partida, não me parece muito boa ideia separar os dados.
Acho que deves criar apenas uma tabela. A performance pode ser melhorada criando VIEWS e ÌNDICES relevantes.
 
Back
Topo