簡體   English   中英

如何優化Postgres的SQL查詢?

[英]How to optimize the SQL query for Postgres?

我有一個類似於以下的SQL查詢:

select *
from TableA
  left outer join TableB on...
  left outer join TableC on...
  ...
  left outer join TableN on...

where
  TableA.id in (subquery);

該查詢需要很長時間才能執行,我檢查了該查詢的執行計划,發現該查詢先執行聯接,然后執行where。 但是,連接需要很長時間才能完成。 我對Oracle運行相同的查詢,並且Oracle進行了優化,以便它與聯接一起執行“ where”部分,因此時間很短。

我的問題是:如何優化SQL查詢,以便Postgres可以首先執行“ where”部分?

PS:我無法使用內部聯接將子查詢添加到“ from”部分,因為我正在使用Hibernate,並且它不支持“ from”部分中的子查詢。

正如您的帖子評論中已經廣泛討論的那樣,“ FROM(子查詢)tblalias”方法可能仍會起作用,因此這里還是偽代碼:

select * from (
  select * from TableA where id in (subquery) 
) tblA
left outer join TableB on...
left outer join TableC on...
...
left outer join TableN on...

但是-誰知道是確定的,因為偽代碼無法測試...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM