Postgresql
為什麼我的查詢處於空閒狀態?
我是 postgres 新手,我有 aws rds 實例執行 postgresql 引擎版本 11.5。
我所有的查詢都是clientRead 有wait_event。為什麼我的所有查詢都處於空閒狀態。這是否意味著它們在事務中處於空閒狀態?
我應該採取哪些步驟來解決這個問題?
例如,如果我將 idle_in_transaction_session_timeout 更改為 10 分鐘,它會解決這個問題嗎?
select count(*),state FROM pg_stat_activity group by 2; count | state -------+-------- 5 | 1 | active 451 | idle Select pid, datname, usename, wait_event_type, wait_event, backend_type FROM pg_stat_activity where state='idle'; pid | datname | usename | wait_event_type | wait_event | backend_type -------+----------+--------------------------+-----------------+------------+---------------- 14797 | xxxxx | user | Client | ClientRead | client backend SELECT current_setting('idle_in_transaction_session_timeout'); current_setting ----------------- 1d (1 row)
您的會話處於空閒狀態,而不是查詢。
idle
沒有問題的會話。它只是意味著後端正在等待客戶端發送 SQL 查詢。不過,會話的數量有點偏高。一旦所有人都開始做某事,您將需要有一個非常強大的伺服器來應對這種情況。
如果會話
idle in transaction
保持在該狀態太久,就會出現問題。這就是idle_in_transaction_session_timeout
處理的內容,而不是“空閒”會話。