簡體   English   中英

PostgreSQL 查詢在 LINUX 服務器上執行的時間太長

[英]PostgreSQL query is taking too long to execute on LINUX server

我最近將 PostgreSQL 數據庫部署到 Linux 服務器,其中一個存儲過程需要大約 24 到 26 秒才能獲取結果。 以前我將 PostgreSQL 數據庫部署到 Windows 服務器,並且相同的存儲過程只需要大約 1 到 1.5 秒。

在這兩種情況下,我都使用具有相同數據量的相同數據庫進行了測試。 並且兩台服務器都具有相同的配置,如 RAM、處理器等。

在 Linux 服務器中執行我的存儲過程時,CPU 使用率達到 100%。

Windows 執行計划:

**在此處輸入圖片描述**

Linux 執行計划:

在此處輸入圖片說明

如果您有相同的解決方案,請告訴我。

這也可能是因為 JIT 在 Linux 服務器中而不是在 Windows 上發揮作用。 檢查linux服務器上的查詢執行計划是否包含有關JIT的信息。 如果是,請檢查在 Windows 版本中是否相同。 如果沒有,我懷疑是這樣。

JIT 可能會增加更多的開銷,因此嘗試根據您的系統要求將 jit_above_cost、jit_inline_above_cost 等 jit 參數更改為適當的值,或者通過設置完全禁用這些參數

jit=off

或者

jit_above_cost = -1

罪魁禍首似乎在

billservice.posid = pos.posid

更具體地說,它在 pos 表上進行序列掃描。 它應該在做索引掃描。

在此處輸入圖片說明

檢查您是否在數據庫中的這兩個文件上有索引。

暫無
暫無

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

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