Fórum Decepicionado com o Interbase #37847
07/08/2003
0
Meu banco está com 70mb, e já ta quase parando, imagina quando xegar nos 1gb, ele vai explodir de tão lento, não consigo nem executar este SQL aqui ó:
SELECT
PEDIDOVENDA.CD_EMPRESA,
PEDIDOVENDA.CD_DIVISAO,
PEDIDOVENDA.NR_LOTE,
PEDIDOVENDA.CD_VENDEDOR,
PEDIDOVENDA.VL_TROCA_MASSA,
PEDIDOVENDA.VL_TROCA_VENDA,
PEDIDOVENDAITEM.VL_COMISSAO,
PEDIDOVENDAITEM.CD_PRODUTO,
PEDIDOVENDAITEM.VL_PEDIDOITEM
FROM PEDIDOVENDA, PEDIDOVENDAITEM, PRODUTO
WHERE PEDIDOVENDA.CD_EMPRESA = PEDIDOVENDAITEM.CD_EMPRESA
AND PEDIDOVENDA.CD_DIVISAO = PEDIDOVENDAITEM.CD_DIVISAO
AND PEDIDOVENDA.CD_VENDA = PEDIDOVENDAITEM.CD_VENDA
AND PEDIDOVENDA.CD_VENDEDOR = PEDIDOVENDAITEM.CD_VENDEDOR
AND PEDIDOVENDAITEM.CD_EMPRESA = PRODUTO.CD_EMPRESA
AND PEDIDOVENDAITEM.CD_DIVISAO = PRODUTO.CD_DIVISAO
AND PEDIDOVENDAITEM.CD_PRODUTO = PRODUTO.CD_PRODUTO
Tem apenas 3 tabelas, mas não executa de jeito nem um !!!!!!!!!!!
se alguém souber uma forma de deixar o interbase mais rápido, porq favor me explica como, mas se não souber, alguém poderia me informar quanto ta custando o banco de dados oracle?
ou se alguem poderia me vender uma copia do oracle? :(
Thoor Cobain
Curtir tópico
+ 0Posts
07/08/2003
Breno Abreu
Gostei + 0
07/08/2003
Thoor Cobain
pode me dar algum exemplo de algum SQL com colunas indexadas?
obrigado...
Gostei + 0
07/08/2003
Maxdangelo
Ex de junção
SELECT *
FROM tab1 A [b:3929d64b27]INNER[/b:3929d64b27] [b:3929d64b27]JOIN [/b:3929d64b27]tab2 B
[b:3929d64b27]ON[/b:3929d64b27] A.cod = B.cod
SELECT CITY, STATE_NAME FROM CITIES C
LEFT JOIN STATES S ON S.STATE = C.STATE
WHERE C.CITY STARTING WITH ´San´;
Qdo fazemos uma junção o interbase irá gerar o conjunto somente sobre aquilo que encontar em ambas as tabelas (INNER JOIN), se utilizarmos o WHERE ele irá gerar dois conjuntos e só depois irá filtrá-las.
Vale a pena dar uma olhada em (INNER JOIN, LEFT JOIN, RIGHT JOIN).
Espero que tenha ajudado!
Gostei + 0
07/08/2003
Maxdangelo
Aqui vai um exemplo:
CREATE INDEX nome ON tabela (coluna);
CREATE INDEX NAMEX ON EMPLOYEE (LAST_NAME, FIRST_NAME);
Certo!
Gostei + 0
08/08/2003
Crpavao
Acho o Interbase bem eficiente. Já tenho uns 10 Sistemas com este Banco e ele nunca me decepcionou.
Tenho Bancod de dados de até 100MB e roda numa boa.
Se vc for usar o Oracle aí vc vai ver o que é chato.
Crie indices auxiliares nestas tabelas e verá que esta query ficará rapidinha.
Prá cada join faça um índice, por exemplo.
Qq coisa tamos aqui.
Um abraço.
Gostei + 0
08/08/2003
Afarias
Existem vários fatores q podem influenciar a performance do sistema, como:
1- projeto do banco de dados
2- construção de SELECTS apropriados
3- projeto do sistema
4- Configuração do servidor (IB e SO)
5- Rede
6- Hardware
Procure conhecer a ferramenta e avaliar onde está errando. Alguns artigos no site http://www.firebase.com.br/ podem ser úteis.
T+
Gostei + 0
08/08/2003
Afarias
por favor, envie questões sobre INTERBASE/FIREBIRD para o fórum apropriado IB/FB.
T+
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)