[firebase-br] RES: RES: RES: Select demorado em tabela com 3 milhoes de registros
Rafael | SGBR Sistemas |
rafael em sgbr.com.br
Seg Fev 4 22:37:45 -03 2013
Certo pessoal vou tentar mudar isso, puxar menos colunas e criar um índice,
mas crio o índice em qual campo vocês acham?
Rafa
-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Zottis
Enviada em: segunda-feira, 4 de fevereiro de 2013 21:59
Para: 'FireBase'
Assunto: [firebase-br] RES: RES: Select demorado em tabela com 3 milhoes de
registros
Sensibilidade: Confidencial
Concordo com o pessoal, na minha humilde opinião, dificilmente ele precisara
de todos esses clientes de uma só vez, então refaça a query usando o where
Select campo1, campo2, campoN from clientes where cod_Cliente <= 100000
Ou ....where cod_cliente between 1 and 100000
Mas se realmente for necessário, use incices para tal select mas essa
quantidade de registros é normal demorar, se o cliente quiser mais rápido
que 32 segundo para 3.000.000.000 Então ele terá que comprar um sup[er, mega
power servidor com uns trocentos processadores e mesmo assim vai ficar na
casa dos 20 segundos.
Por isso o pessoal falou para restringir o select colocando filtros Tenho
uma tabela que retorna mais de 100.000 registros em menos de 2 segundos, mas
se você somar verá que no final daria o mesmo tempo que o seu select
Espero que ajude.
Zottis
-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Felix - SOL
Informática Enviada em: segunda-feira, 4 de fevereiro de 2013 19:13
Para: 'FireBase'
Assunto: [firebase-br] RES: Select demorado em tabela com 3 milhoes de
registros
Sensibilidade: Confidencial
3.000.000, todos os campos, toda a tabela (sem filtros) e era para ser
rápido?
Refaça as querys e traga da base somente o necessário - não tem mágica ;-)
Francisco Felix
www.solsistemas.com
-----Mensagem original-----
De: lista [mailto:lista-bounces em firebase.com.br] Em nome de Rafael | SGBR
Sistemas | Enviada em: segunda-feira, 4 de fevereiro de 2013 16:30
Para: FireBase
Assunto: [firebase-br] Select demorado em tabela com 3 milhoes de registros
Prioridade: Alta
Sensibilidade: Confidencial
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
______________________________________________
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