BANCO DE DADOS MUITO GRANDE SQL

DOIDO.NNF 23/06/2004 14:06:25
#30896
Pessoal tenho uma maquina AMD ATHON TM XP 2200 1.80 GHz com 1,25 GB de RAM com win2003 q esta com o iss e com o sql server 2000,.,,a estou desenvolvendo um sistema q a pessoa faz consulta no bd pelo site,só q uns dod meus bds tem 5 milhões e meio d registro,e está demorando d mais a consulta.vo no proprio sql QUERY ANALYZER e do um select count neste bd e fica mais ou menos uns 10 minutos pra me responder,,,gostaria q alguem me desse um help pois ja me falaram q o sql nao suporta esse tamanho d bd,outro disse q minha maquina esta muito ruin,,outro disse pra mim usar o mysql q e melhor e outro falou pra usar o firebird,,intao ai está minha pergunta,,,oq posso fazer? tem algo q posso fazer nos meus bd's pra eles serem mais rapidos,,? OBS : é q meu conhecimento no sql server e o básico pois aprendi lendo algumas coisas,,,e acho q naum aprendi os "macetes" q deve ter pra deixar o banco mais rapido..
alguem poderia pelomenos me dar uma noção d q devo fazer...,por favor...
Desde j;a agradeço a colaboração d todos...
USUARIO.EXCLUIDOS 23/06/2004 14:18:43
#30899
Resposta escolhida
DOIDO:

A performance de um Banco de Dados é diretamente proporcional ao modo de programar o acesso ao referido banco.

Um select bem elaborado irá certamente aumentar a performance.

Evite utilizar Jóin's, Inner Join's, Between's, etc. São muito atrativos no ponto de vista de comodidade para programar, mas gastam muita máquina.

Já tive um caso, a algum tempo em que uma consulta que demorava +/- 10 minutos, passou a gastar 30 segundos, quando um meu programador (bom) simplesmente mudou o select.

Não me recordo dos detalhes, nem do que ele mudou mas acho que ainda tenho e vou procurar achar para vc.
USUARIO.EXCLUIDOS 23/06/2004 14:58:11
#30909
Doido:

Posso estar enganado, mas perceba o que vc está fazendo:

Você quer pegar os 100 primeiros registros, cujos valores tiverem ao menos um pedaço (like) do valor (parà¢metro) fornecido, tudo isto em uma tabela ordenada por Nome.

Concorda que ?:

Primeiro ele vai classificar seus 5,5 milhões de registros, depois vai pesquisar todos os valores até chegar ao Centézimo e aí sair fora.. E se o Centézimo estiver na Letra "Z" ?

Talvez fosse o caso de classificar por valor (o que não vai garantir muita coisa), depois por nome. Talvez fosse o caso de não usar o Like porque neste caso, mesmo indexando por valor adiantaria, pois o Like não dá bola para o índice.

Enfim, precisaria estudar mais a situação, mas parece que está "cheirando" um select mal elaborado.

Enfim, precisaria saber como é sua Base de Dados.

Vale apenas como dica...
USUARIO.EXCLUIDOS 23/06/2004 16:06:01
#30926
Doido:

Tem certeza de que o Like é no campo de Valor ?
USUARIO.EXCLUIDOS 23/06/2004 16:46:49
#30942
Doido.

Desculpe. Falha minha. o like é no campo Nome...
Tópico encerrado , respostas não são mais permitidas