BANCO DE DADOS MUITO GRANDE SQL


alguem poderia pelomenos me dar uma noção d q devo fazer...,por favor...
Desde j;a agradeço a colaboração d todos...
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.
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.
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...
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...
Doido:
Tem certeza de que o Like é no campo de Valor ?
Tem certeza de que o Like é no campo de Valor ?
Doido.
Desculpe. Falha minha. o like é no campo Nome...
Desculpe. Falha minha. o like é no campo Nome...
Tópico encerrado , respostas não são mais permitidas