Select com Join em tabelas com grande quantidade de dados.

1. Select com Join em tabelas com grande quantidade de dados.

Francisco Antonio de Aquino Pessoa
FranciscoPessoa

(usa Linux Mint)

Enviado em 07/11/2017 - 18:44h

Boa tarde,

Galerinha não sou muito experiente com banco de dados e me deparei com uma situação onde tenho de fazer um select com JOIN em duas tabelas bem grandinhas...
Tabela 1: 7 386 025 linhas.
Tabela 2: 12 412 593 linhas.

SELECT a.uniqueid,a.calldate,a.src,a.lastapp,b.call_id,b.verb,b.data1,b.data2 FROM cdr a INNER JOIN queue_log b ON (a.uniqueid = b.call_id) WHERE a.lastapp='QUEUE' AND(b.verb='COMPLETECALLER' OR b.verb='COMPLETEAGENT') AND a.calldate LIKE '2017-11-07%';

Preciso pegar todos dados da tabela cdr onde o unique id seja igual ao call_id da tabela queue_log, o lastapp da tabela cdr seja igual a QUEUE, o verb da tabela queue_log seja igual a COMPLETECALLER ou COMPLETEAGENT e a datetime da tabela cdr seja o dia atual inteiro.

Creio que o select esteja correto, porém demora muito para rodar, apesar da máquina ser boa, há alguma forma que eu possa otimizar esse comando? grato desde já.



  


2. RE:Select com Join em tabelas com grande quantidade de dados.

Henry
henrybarreto

(usa Manjaro Linux)

Enviado em 07/11/2017 - 21:39h

Amigo, se eu não estiver enganado, você pode usar views para facilitar essa requisição.

Seguem alguns links que podem te ajudar.
https://www.w3schools.com/sql/sql_view.asp
https://www.tutorialspoint.com/sql/sql-using-views.htm
https://www.devmedia.com.br/conceitos-e-criacao-de-views-no-sql-server/22390


3. Re: Select com Join em tabelas com grande quantidade de dados.

Francisco Antonio de Aquino Pessoa
FranciscoPessoa

(usa Linux Mint)

Enviado em 08/11/2017 - 15:47h

Amigo, no caso gostaria de saber se há como receber os dados mais rápidamente, executar o select mais rápido, não simplificar a escrita do código.


4. Re: Select com Join em tabelas com grande quantidade de dados.

Ricardo Fabiano Silva
madrugada

(usa Gentoo)

Enviado em 08/11/2017 - 16:38h

FranciscoPessoa escreveu:

Amigo, no caso gostaria de saber se há como receber os dados mais rápidamente, executar o select mais rápido, não simplificar a escrita do código.


As tabelas possuem indices? Se não possuem, é bom criar.
Se já possuem índices, eles estão fragmentados? Caso estejam, é necessário desfragmentar ou recriar os índices.


5. RE:Select com Join em tabelas com grande quantidade de dados.

Henry
henrybarreto

(usa Manjaro Linux)

Enviado em 08/11/2017 - 18:36h

madrugada escreveu:

FranciscoPessoa escreveu:

Amigo, no caso gostaria de saber se há como receber os dados mais rápidamente, executar o select mais rápido, não simplificar a escrita do código.


As tabelas possuem indices? Se não possuem, é bom criar.
Se já possuem índices, eles estão fragmentados? Caso estejam, é necessário desfragmentar ou recriar os índices.


http://www.linhadecodigo.com.br/artigo/1308/melhorando-desempenho-de-consultas-utilizando-views-inde...

Usando as Views indexadas você pode melhorar o desempenho da requisição.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts