[firebase-br] Select demorado em tabela com 3 milhoes de registros

W O sistemas2000profesional em gmail.com
Ter Fev 5 06:03:48 -03 2013


¿Para qué le muestras 3 millones de registros?

Jamás de los jamases podrá mirar tantos registros, es imposible.

No tiene sentido que un SELECT devuelva más de 100 registros porque nadie
generalmente mira más que esos. Y si llegara a necesitar más le haces un
nuevo SELECT y ya está. Así siempre será rapidísimo y todos contentos.

SELECT .... ROWS     1 TO 100     -- Si llega a necesitar ver más, entonces:
SELECT .... ROWS 101 TO 200

Saludos.

Walter.






2013/2/4 Gladiston Santana <gladiston em vidy.com.br>

> Você faz um :
>
> Select * from tcadastrocliente
>
> Ele demora 32 segundos para exibir mais de 3 milhões de registros e você
> quer que ele seja mais rápido do que isso ?
> Se seu cliente tem muito dinheiro eu diria para comprar um supercomputador
> da IBM.
> Para os mortais, a melhor solução seria dar um escopo na busca, até porque
> duvido que seu cliente vá ler 3 milhões de registros.
>
> []´s
>
>
>
> Em 4 de fevereiro de 2013 17:29, Rafael | SGBR Sistemas | <
> rafael em sgbr.com.br> escreveu:
>
> > Bom dia pessoal, estou com um problema pra resolver, tem um cliente meu
> que
> > faz tempo que reclama de lentidão no sistema, eu sempre me desviava
> dizendo
> > que era problema de maquina e tal, até que resolvi ir ver oque estava
> > acontecendo, ocorre que o cara tem mais de 3 milhões de registros em uma
> > tabela, fiz um select: Select * from tcadastrocliente por dentro do
> > iboconsole, e o resultado é 32 segundos pra mostrar na tela 3.167.763
> > registros. Por isso ele reclama, me imagino dando soco no computador pra
> > ele
> > ir mais rápido kkk, bom a coisa é séria, e venho pedir a ajuda dos
> colegas
> > que conhecem mais que eu, a estrutura da tabela segue abaixo:
> >
> >
> >
> > /* Table: TCADASTROCLIENTE, Owner: SYSDBA */
> >
> >
> >
> > CREATE TABLE "TCADASTROCLIENTE"
> >
> > (
> >
> >   "CONTROLE"   INTEGER,
> >
> >   "DATACADASTRO"       DATE,
> >
> >   "DATAULTIMOENVIO"               DATE,
> >
> >   "QTDENVIADOS"           INTEGER,
> >
> >   "ARQUIVOENVIADO"  VARCHAR(500),
> >
> >   "CODIGOGRUPO"         INTEGER NOT NULL,
> >
> >   "GRUPO"          VARCHAR(100) NOT NULL,
> >
> >   "CAMPANHA"                VARCHAR(500),
> >
> >   "FONE1"            VARCHAR(50),
> >
> >   "FONE2"            VARCHAR(50),
> >
> >   "HORAENVIO"                TIME,
> >
> >   "EMAIL"            VARCHAR(100),
> >
> >   "CLIENTE"         VARCHAR(100),
> >
> >   "CODULTIMACAMPANHA"      INTEGER,
> >
> >   "CODIGOFILIAL"            INTEGER NOT NULL,
> >
> >   "HORACADASTRO"       TIME NOT NULL,
> >
> >   "DATANASCIMENTO" DATE,
> >
> >   "REJEITADO"   VARCHAR(3),
> >
> >   "ANIVERSARIOENVIADO"         VARCHAR(50),
> >
> >   "QTDERETORNADOS"  INTEGER NOT NULL,
> >
> >   "CLIENTECOMPROU"  VARCHAR(3),
> >
> > CONSTRAINT "PK_TCADASTROCLIENTE" PRIMARY KEY ("CONTROLE")
> >
> > );
> >
> > SET TERM ^ ;
> >
> >
> >
> >
> >
> > /* Triggers only will work for SQL triggers */
> >
> >
> >
> > CREATE TRIGGER "TCADASTROCLIENTE_BI" FOR "TCADASTROCLIENTE"
> >
> > ACTIVE BEFORE INSERT POSITION 0
> >
> > AS
> >
> > BEGIN
> >
> >   IF (NEW.CONTROLE IS NULL) THEN
> >
> >     NEW.CONTROLE = GEN_ID(GEN_TCADASTROCLIENTE_ID,1);
> >
> > END
> >
> > ^
> >
> >
> >
> > CREATE TRIGGER "TCADASTROCLIENTE_BIU0" FOR "TCADASTROCLIENTE"
> >
> > ACTIVE BEFORE INSERT OR UPDATE POSITION 0
> >
> > AS
> >
> > begin
> >
> >   /* Trigger text */
> >
> >   if (new.qtderetornados is null) then
> >
> >     new.qtderetornados = 0;
> >
> > end
> >
> > ^
> >
> >
> >
> > COMMIT WORK ^
> >
> > SET TERM ;^
> >
> >
> >
> > Oque eu posso fazer pra melhorar esse select?
> >
> > Obrigado desse já pela ajuda.
> >
> > Rafa
> >
> >
> >
> > ______________________________________________
> > FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> > Para saber como gerenciar/excluir seu cadastro na lista, use:
> > http://www.firebase.com.br/fb/artigo.php?id=1107
> > Para consultar mensagens antigas: http://firebase.com.br/pesquisa
> >
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para saber como gerenciar/excluir seu cadastro na lista, use:
> http://www.firebase.com.br/fb/artigo.php?id=1107
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>



Mais detalhes sobre a lista de discussão lista