Производительность SQL ухудшается при добавлении предложения INNER JOIN в Postgres [закрыто]

У меня есть следующий запрос

SELECT pri.*
  FROM patientreceiptitem pri 
  JOIN patientfinancialtransaction_patientreceiptitem pp ON pri.id = pp.receiptitems_id
  JOIN patientfinancialtransaction pft ON pp.patientfinancialtransaction_id = pft.id 
 WHERE pri.createtime >= '2020-03-01'
   AND pri.createtime < '2020-04-01'

Он запускается за 1,79 секунд и выдает 111, 793 строк

Однако, когда я добавляю более ограничительное условие:

 JOIN patientbillconcession pbc ON pbc.id = pft.concession_id

производительность резко снижается. Теперь вывод 10 338 строк занимает 8,185 секунды. Такое же ухудшение наблюдается, если добавить условие в предложение JOIN для таблицы pft :

SELECT pri.*
  FROM patientreceiptitem pri 
  JOIN patientfinancialtransaction_patientreceiptitem pp ON pri.id = pp.receiptitems_id
  JOIN patientfinancialtransaction pft ON pp.patientfinancialtransaction_id = pft.id 
       AND pft.concession_id IS NOT NULL
 WHERE pri.createtime >= '2020-03-01'
   AND pri.createtime < '2020-04-01'

concession _ id индексируется в таблице pft .

Любые указатели будут отличными.

Я запускаю Postgres 12 на Arch Linux. Мой клиент - DBeaver 7.3.2.

Обновление 1: Я обнаружил, что изменение следующего на LEFT JOIN завершает запрос за 1,914 секунды: LEFT JOIN patientbillconcession pbc ON pbc.id = pft.concession_id

But добавление И pft.concession_id НЕ NULL в предложение WHERE еще раз ухудшает производительность до 7,938 секунд

-121--901557- Я удалил ZSH и HUD исчез Я удалил zssh на моем ubuntu 16,04 Я попытался с chsh -s/bin/bash восстановить оболочку по умолчанию, потому что я не могу войти в корневую оболочку восстановления...

Я удалил zsh на своем ubuntu 16.04, я совершил ошибку, не изменив оболочку. Я попытался с chsh -s/bin/bash восстановить оболочку по умолчанию, потому что я не могу войти в корневую оболочку режима восстановления, это разрешено. Но когда я открываю сеанс, HUD исчезает, я вижу только файловый интерфейс, но остальные HUD нет. Я пытался открыть оболочку с помощью ctrl + alt + T и не работает. Единственный способ открыть оболочку - соединение ssh. Не могли бы вы мне помочь?

Спасибо.

0
задан 28 April 2021 в 10:26

1 ответ

Решить. Я переустанавливаю рабочий стол ubuntu типа sudo apt-get install --reinstall ubuntu-desktop.

Надеюсь, это поможет вам, если это когда-нибудь случится с вами

0
ответ дан 7 May 2021 в 17:42

Другие вопросы по тегам:

Похожие вопросы: