Выполнение запроса занимает слишком много времени, когда я добавляю предложение where - PullRequest
0 голосов
/ 03 июня 2019

У меня есть запрос на объединение 4 таблиц, когда я выполняю без «где» - 13 секунд, а где - 8 минут.

Понятия не имею, что делать, когда вы используете фильтр для улучшения производительности запросов, но я ошибаюсь

SELECT distinct  tb_ProdutoComercial.nm_prodcomerc as tx_nome,
         tb_parceiro.id_prodcomerc_pr as id_produto
        FROM  tb_vendedor
       left join  tb_tokenidparc
       on  tb_vendedor.nu_cdVendedorS4E =  tb_tokenidparc.nu_cdVendedor4E_tk 
       left join  tb_parceiro
       on  tb_tokenidparc.nu_cdCorretoraS4E_tk =  tb_parceiro.id_corretora_pr
       left join  tb_ProdutoComercial
       on  tb_ProdutoComercial.id_prodcomerc =  tb_parceiro.id_prodcomerc_pr
      where tb_ProdutoComercial.en_status = '1'

ОБЪЯСНИТЕ, Где ОБЪЯСНИТЬ Без Где

Я ищу что-то с той же производительностью, без которой

Ответы [ 2 ]

1 голос
/ 03 июня 2019

Когда вы присоединяетесь к таблицам на левой стороне, но вы также фильтруете их, поэтому это занимает много времени.Здесь фактически 5 запросов выполняются согласно запросу.

0 голосов
/ 04 июня 2019

Это работает лучше?

   SELECT distinct  tb_ProdutoComercial.nm_prodcomerc as tx_nome
        ,tb_parceiro.id_prodcomerc_pr as id_produto
    FROM  tb_vendedor
        left join  tb_tokenidparc on  tb_vendedor.nu_cdVendedorS4E =  tb_tokenidparc.nu_cdVendedor4E_tk 
        left join  tb_parceiro on tb_tokenidparc.nu_cdCorretoraS4E_tk =  tb_parceiro.id_corretora_pr
        left join  (select * from tb_ProdutoComercial where en_status='1')  tb_ProdutoComercial on tb_ProdutoComercial.id_prodcomerc =  tb_parceiro.id_prodcomerc_pr
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...