適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中的伺服器參數

適用於: 適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器

適用於 PostgreSQL 的 Azure 資料庫為每個伺服器提供可設定的參數子集。 如需 Postgres 參數的詳細資訊,請參閱 PostgreSQL 文件

參數型別

適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器已預先設定每個參數的最佳預設設定。 參數可以歸類為下列其中一種類型:

  • 靜態:這些參數需要重新啟動伺服器,才能實作任何變更。
  • 動態:這些參數可在不需重新啟動伺服器執行個體的情況下進行改變。 不過,變更將只會套用至修改之後建立的新連線。
  • 唯讀:由於這些參數在維護服務的可靠性、安全性或其他作業層面扮演了重要角色,因此使用者無法設定這些參數。

若要判斷參數類型,請移至 Azure 入口網站,然後在 [伺服器參數] 窗格中開啟。 參數會分組為索引標籤,以方便識別。

參數自訂

您可以使用各種方法和層級,根據自己的特定需求來自訂參數。

全域層級

若要在執行個體或伺服器層級全域改變設定,請移至 Azure 入口網站中的 [伺服器參數] 窗格。 您也可以使用其他可用的工具,例如 Azure CLI、REST API、Azure Resource Manager 範本或合作夥伴工具。

注意

由於適用於 PostgreSQL 的 Azure 資料庫是受控資料庫服務,因此,使用者不具主機或作業系統存取權可檢視或修改 postgresql.conf 等設定檔。 系統會根據您所做的參數變更,自動更新檔案的內容。

Azure 入口網站中伺服器參數窗格的螢幕擷取畫面。

細微層級

您可以在更細微的層級調整參數。 這些調整會覆寫全域設定的值。 其範圍和持續期間取決於您進行調整的層級:

  • 資料庫層級:針對資料庫特定的設定使用 ALTER DATABASE 命令。

  • 角色或使用者層級:使用 ALTER USER 命令,進行使用者為中心的設定。

  • 函式、程序層級:當您定義函式或程序時,可以指定或改變將在呼叫函式時設定的設定參數。

  • 資料表層級:例如,您可以修改與在此層級進行自動資料清理相關的參數。

  • 工作階段層級:針對個別資料庫工作階段的持續期間,您可以調整特定參數。 PostgreSQL 使用下列 SQL 命令來協助進行此調整:

    • 使用 SET 命令,進行工作階段特定的調整。 這些變更可在目前工作階段期間用來作為預設設定。 存取這些變更可能需要特定的 SET 權限,而且先前所述之可修改和唯讀參數的限制不適用。 對應的 SQL 函式為 set_config(setting_name, new_value, is_local)
    • 使用 SHOW 命令來檢查現有的參數設定。 其 SQL 函式對等項目為 current_setting(setting_name text)

支援的伺服器參數

Autovacuum

名稱 版本 描述
autovacuum 111213141516 控制伺服器是否應該執行自動資料清理子處理序。
autovacuum_analyze_scale_factor 111213141516 指定當決定是否要觸發 VACUUM 時,要加入至 autovacuum_vacuum_threshold 之資料表大小的比例。
autovacuum_analyze_threshold 111213141516 設定在任一資料表中,觸發 ANALYZE 所需的已插入、已更新或已刪除 Tuple 的最小數目。
autovacuum_freeze_max_age 111213141516 在資料表上觸發自動資料清理之前,啟用最長使用期限 (使用 Transactions) 以防止交易識別碼迴繞。
autovacuum_max_workers 111213141516 設定同時執行自動資料清理背景工作處理序的數目上限。
autovacuum_multixact_freeze_max_age 111213141516 在資料表上觸發自動資料清理之前,啟用最長使用期限 (使用 MultiXact),以防止 MultiXact 迴繞。
autovacuum_naptime 111213141516 設定在任何指定的資料庫上,每回合自動資料清理之間的最小延遲。
autovacuum_vacuum_cost_delay 111213141516 設定要用於自動 VACUUM 作業中的成本延遲值 (毫秒)。
autovacuum_vacuum_cost_limit 111213141516 設定要用於自動 VACUUM 作業中的成本限制值。
autovacuum_vacuum_insert_scale_factor 13141516 指定在決定是否觸發 VACUUM 時,要加入至 autovacuum_vacuum_insert_threshold 之資料表大小的佔比。
autovacuum_vacuum_insert_threshold 13141516 指定在任一資料表中,觸發 VACUUM 所需之已插入 Tuple 的數目。
autovacuum_vacuum_scale_factor 111213141516 指定當決定是否要觸發 VACUUM 時,要加入至 autovacuum_vacuum_threshold 之資料表大小的比例。
autovacuum_vacuum_threshold 111213141516 指定在任一資料表中,觸發 VACUUM 所需的已更新或已刪除 Tuple 的最小數量。

用戶端連線預設值/地區設定和格式設定

名稱 版本 描述
client_encoding 111213141516 設定用戶端編碼 (字元集)。 預設值是使用資料庫編碼。
DateStyle 111213141516 設定日期和時間值的顯示格式。
default_text_search_config 111213141516 選取那些沒有明確引數指定的文字搜尋函式變體所使用的文字搜尋設定。
extra_float_digits 111213141516 設定針對浮點數值顯示的位數。
IntervalStyle 111213141516 設定間隔值的顯示格式。
lc_messages 111213141516 設定顯示訊息的語言。
lc_monetary 111213141516 設定用來將貨幣金額格式化的地區設定。
lc_numeric 111213141516 設定用來將數字格式化的地區設定。
lc_time 111213141516 設定用來將日期和時間值格式化的地區設定。
TimeZone 111213141516 設定顯示和解譯時間戳記的時區。
timezone_abbreviations 111213141516 選取時區縮寫的檔案。

用戶端連線預設值/其他預設值

名稱 版本 描述
dynamic_library_path 111213141516 設定可動態載入模組的路徑。
gin_fuzzy_search_limit 111213141516 設定 GIN 精確搜尋的允許結果上限。

用戶端連線預設值/共用程式庫預先載入

名稱 版本 描述
jit_provider 111213141516 要使用的 JIT 提供者。
local_preload_libraries 111213141516 列出要預先載入到每個後端之不具特殊權限的共用程式庫。
session_preload_libraries 111213141516 列出要預先載入到每個後端的共用程式庫。
shared_preload_libraries 111213141516 設定要在伺服器啟動時預先載入的共用程式庫。

用戶端連線預設值/陳述式行為

名稱 版本 描述
bytea_output 111213141516 設定 bytea 類型值的輸出格式。 有效值為 hex (預設值) 和 escape (傳統的 PostgreSQL 格式)。
check_function_bodies 111213141516 檢查 CREATE FUNCTION 期間的函式主體。
client_min_messages 111213141516 控制傳送至用戶端的訊息層級。
default_table_access_method 1213141516 設定適用於新資料表的預設資料表存取方法。
default_tablespace 111213141516 設定要在其中建立資料表和索引的預設資料表空間。
default_toast_compression 141516 設定適用於可壓縮值的預設壓縮方法。
default_transaction_deferrable 111213141516 此參數會控制每個新交易的預設可延遲狀態。 其不會影響讀寫交易或處於低於可序列化之隔離等級的作業。
default_transaction_isolation 111213141516 此參數會控制每個新交易的預設隔離等級。 預設值為 'read committed'。
default_transaction_read_only 111213141516 設定每個新交易的預設唯讀狀態。
gin_pending_list_limit 111213141516 設定 GIN 索引擱置清單的大小上限。
idle_in_transaction_session_timeout 111213141516 設定任何閒置交易的允許持續期間上限。
idle_session_timeout 141516 設定查詢之間 (而非在交易中) 允許的閒置時間上限。
lock_timeout 111213141516 設定任何鎖定等候的允許持續期間上限 (以毫秒為單位)。 0 會關閉此功能。
row_security 111213141516 啟用資料列安全性。
search_path 111213141516 為未限定結構描述的名稱設定結構描述搜尋順序。
session_replication_role 111213141516 控制針對目前工作階段引發複寫相關的觸發程序和規則。
statement_timeout 111213141516 設定任何陳述式的允許持續期間上限 (以毫秒為單位)。 0 會關閉此功能。
temp_tablespaces 111213141516 若未在 CREATE 命令中指定,則設定預設資料表空間以用於暫存資料表和排序檔案。
transaction_deferrable 111213141516 是否要延遲唯讀的可序列化交易,直到其在不會產生任何可能序列化失敗的情況下執行為止。
transaction_isolation 111213141516 設定目前交易的隔離等級。
transaction_read_only 111213141516 設定目前交易的唯讀狀態。
vacuum_cleanup_index_scale_factor 111213 索引清除之前 Tuple 插入的數目,以 reltuples 的佔比表示。
vacuum_failsafe_age 141516 VACUUM 應該觸發故障保險以避免包裝中斷的存留期。
vacuum_freeze_min_age 111213141516 指定 VACUUM 應該用來決定是否要在掃描資料表時凍結資料列版本的截止期限 (在交易中)。
vacuum_freeze_table_age 111213141516 VACUUM 應該掃描整個資料表以凍結 Tuple 的存留期。
vacuum_multixact_failsafe_age 141516 VACUUM 應該觸發故障保險以避免包裝中斷的 Multixact 存留期。
vacuum_multixact_freeze_min_age 111213141516 指定 VACUUM 應該用來決定在掃描資料表時,是否要使用較新的交易識別碼或 Multixact 識別碼取代 Multixact 識別碼的截止期限 (在 Multixact 中)。
vacuum_multixact_freeze_table_age 111213141516 如果資料表達到此設定所指定的存留期,VACUUM 就會執行完整資料表掃描來凍結資料列。
xmlbinary 111213141516 設定在 XML 中編碼二進位值的方式。
xmloption 111213141516 設定要將隱含剖析和序列化作業中的 XML 資料視為文件還是內容片段。

連線和驗證/驗證

名稱 版本 描述
authentication_timeout 111213141516 設定完成用戶端驗證的允許時間上限。
db_user_namespace 111213141516 啟用個別資料庫使用者名稱。
krb_caseins_users 111213141516 設定是否應該將 Kerberos 和 GSSAPI 使用者名稱視為不區分大小寫。
krb_server_keyfile 111213141516 設定 Kerberos 伺服器金鑰檔案的位置。
password_encryption 111213141516 決定用來加密密碼的演算法。

連線和驗證/連線設定

名稱 版本 描述
bonjour 111213141516 啟用透過 Bonjour 公告伺服器。
bonjour_name 111213141516 設定 Bonjour 服務名稱。
listen_addresses 111213141516 設定要接聽的主機名稱或 IP 位址。
max_connections 111213141516 設定連線到資料庫伺服器的最大並行連線數目。
port 111213141516 設定伺服器要接聽的 TCP 通訊埠。
reserved_connections 111213141516 設定保留給複寫使用者和超級使用者的連線位置數目。
superuser_reserved_connections 111213141516 設定保留給超級使用者的連線位置數目。
unix_socket_directories 111213141516 設定將建立 Unix 網域通訊端的目錄。
unix_socket_group 111213141516 設定 Unix 網域通訊端的擁有群組。
unix_socket_permissions 111213141516 設定 Unix 網域通訊端的存取權限。

連線和驗證/SSL

名稱 版本 描述
ssl 111213141516 啟用 SSL 連線。
ssl_ca_file 111213141516 SSL 憑證授權單位檔案的位置。
ssl_cert_file 111213141516 SSL 伺服器憑證檔案的位置。
ssl_ciphers 111213141516 設定允許的 SSL 加密清單。
ssl_crl_dir 141516 SSL 憑證撤銷清單目錄的位置。
ssl_crl_file 111213141516 SSL 憑證撤銷清單檔案的位置。
ssl_dh_params_file 111213141516 SSL DH 參數檔案的位置。
ssl_ecdh_curve 111213141516 設定要用於 ECDH 的曲線。
ssl_key_file 111213141516 SSL 伺服器私密金鑰檔案的位置。
ssl_max_protocol_version 1213141516 設定要使用的最高 SSL/TLS 通訊協定版本。
ssl_min_protocol_version 1213141516 設定要使用的最低 SSL/TLS 通訊協定版本。
ssl_passphrase_command 111213141516 取得 SSL 複雜密碼的命令。
ssl_passphrase_command_supports_reload 111213141516 控制是否要在伺服器重新載入期間呼叫 ssl_passphrase_command。
ssl_prefer_server_ciphers 111213141516 指定伺服器 ciphersuite 順序的優先順序。

連線和驗證/TCP 設定

名稱 版本 描述
client_connection_check_interval 141516 設定執行查詢時檢查中斷連線之間的時間間隔。
tcp_keepalives_count 111213141516 指定在將伺服器與用戶端的連線視為無效之前可能遺失的 TCP Keepalives 數目。
tcp_keepalives_idle 111213141516 指定非使用狀態的秒數,在那之後,TCP 應該會將 keepalive 訊息傳送給用戶端。
tcp_keepalives_interval 111213141516 指定應重新傳輸用戶端未認可之 TCP keepalive 訊息的秒數。
tcp_user_timeout 1213141516 指定在強制關閉 TCP 連線之前,傳輸的資料可能保持未認可狀態的時間量。

自訂選項

名稱 版本 描述
auto_explain.log_analyze 111213141516 使用 EXPLAIN ANALYZE 進行計劃記錄。
auto_explain.log_buffers 111213141516 記錄緩衝區使用方式。
auto_explain.log_format 111213141516 要用於計劃記錄的 EXPLAIN 格式。
auto_explain.log_level 1213141516 計劃的記錄層級。
auto_explain.log_min_duration 111213141516 設定將記錄計劃的最低執行時間。 零會列印所有計劃。 -1 會關閉此功能。
auto_explain.log_nested_statements 111213141516 記錄巢狀陳述式。
auto_explain.log_settings 1213141516 記錄會影響查詢規劃的已修改設定參數。
auto_explain.log_timing 111213141516 收集計時資料,而不只是資料列計數。
auto_explain.log_triggers 111213141516 在計劃中包含觸發程序統計資料。 除非同時設定 log_analyze,否則這不會有任何作用。
auto_explain.log_verbose 111213141516 使用 EXPLAIN VERBOSE 進行計劃記錄。
auto_explain.log_wal 13141516 記錄 WAL 使用方式。
auto_explain.sample_rate 111213141516 要處理的查詢佔比。
azure.accepted_password_auth_method 111213141516 已接受的密碼驗證方法。
azure.allow_hostname_in_username 11 指定適用於 PostgreSQL 的 Azure 資料庫彈性伺服器的使用者名稱中是否允許使用主機名稱。
azure.enable_temp_tablespaces_on_local_ssd 111213141516 在暫時性磁碟上建立暫存資料表空間。
azure.extensions 111213141516 指定允許在伺服器中建立的延伸模組。
azure.fabric_mirror_enabled 15 指定伺服器上是否啟用鏡像的旗標。
azure.single_to_flex_migration 111213141516 指定這是否為建立來從適用於 PostgreSQL 的 Azure 資料庫單一伺服器移轉至彈性伺服器的伺服器。
cron.database_name 111213141516 設定保留 pg_cron 中繼資料的資料庫。
cron.log_run 111213141516 將所有作業執行記錄到 job_run_details 資料表中。
cron.log_statement 111213141516 在執行之前記錄所有 cron 陳述式。
cron.max_running_jobs 111213141516 設定可同時執行的作業數目上限。 此值受限於 max_connections。
pgaudit.log 111213141516 指定工作階段稽核記錄將記錄哪些類別的陳述式。
pgaudit.log_catalog 111213141516 指定在陳述式中的所有關聯都在 pg_catalog 中的情況下,應該啟用工作階段記錄。
pgaudit.log_client 111213141516 指定用戶端是否應該看到稽核訊息。
pgaudit.log_level 111213141516 指定將用於記錄項目的記錄層級。
pgaudit.log_parameter 111213141516 指定稽核記錄應該包含透過陳述式傳遞的參數。
pgaudit.log_relation 111213141516 指定工作階段稽核記錄是否應該針對 SELECT 或 DML 陳述式中所參考的每個關聯建立個別記錄項目。
pgaudit.log_statement_once 111213141516 指定記錄是否將包含陳述式文字和參數,以及陳述式/子陳述式組合的第一個記錄項目或每個項目。
pgaudit.role 111213141516 指定要用於物件稽核記錄的主要角色。
pglogical.batch_inserts 111213141516 如果可能,告知 PGLogical 使用批次插入機制。
pglogical.conflict_log_level 111213141516 將 pglogical.conflict_resolution 設定為錯誤以外的任何項目時,設定用以報告所偵測到衝突的記錄層級。
pglogical.conflict_resolution 111213141516 針對在本機資料與傳入變更之間偵測到的任何衝突設定解決方法。
pglogical.use_spi 111213141516 告知 PGLogical 使用 SPI 介面來形成實際的 SQL (INSERT、UPDATE、DELETE) 陳述式,以套用傳入變更,而不是使用內部低層級介面。
pgms_stats.is_enabled_fs 111213141516 僅限內部使用:此參數會當做功能覆寫參數使用。
pgms_wait_sampling.history_period 111213141516 設定以毫秒為單位的等候事件取樣頻率。
pgms_wait_sampling.is_enabled_fs 111213141516 僅限內部使用:此參數會當做功能覆寫參數使用。 如果顯示為關閉,將停用等候取樣,儘管已針對 pgms_wait_sampling.query_capture_mode 設定值也一樣。
pgms_wait_sampling.query_capture_mode 111213141516 選取 pgms_wait_sampling 延伸模組所追蹤的陳述式。
pg_partman_bgw.analyze 111213141516 與 run_maintenance() 的 p_analyze 引數的用途相同。
pg_partman_bgw.dbname 111213141516 必要。 run_maintenance() 將在其中執行的資料庫。 如果有一個以上,請使用逗點分隔清單。 如果未設定,BGW 將不會執行任何動作。
pg_partman_bgw.interval 111213141516 呼叫 run_maintenance() 之間的秒數。
pg_partman_bgw.jobmon 111213141516 與 run_maintenance() 的 p_jobmon 引數的用途相同。
pg_partman_bgw.role 111213141516 run_maintenance() 將以其身分執行的角色。 預設值為 postgres。 僅允許單一角色名稱。
pg_qs.interval_length_minutes 111213141516 設定 pg_qs 的 query_store 擷取間隔 (以分鐘為單位) - 這是資料持續性的頻率。
pg_qs.is_enabled_fs 111213141516 僅限內部使用:此參數會當做功能覆寫參數使用。 如果顯示為關閉,將停用查詢存放區,儘管已針對 pg_qs.query_capture_mode 設定值也一樣。
pg_qs.max_plan_size 111213141516 設定要為 pg_qs 的查詢計劃文字儲存的位元組數上限;較長的計劃將會截斷。
pg_qs.max_query_text_length 111213141516 設定將儲存的查詢文字長度上限;將截斷過長的查詢。
pg_qs.query_capture_mode 111213141516 針對查詢存放區設定查詢擷取模式。 None 會停用任何擷取。
pg_qs.retention_period_in_days 111213141516 設定 pg_qs 的保留期間長度 (天數) - 在此時間之後,將會刪除資料。
pg_qs.store_query_plans 111213141516 為 pg_qs 開啟或關閉儲存查詢計劃的功能
pg_qs.track_utility 111213141516 選取 pg_qs 是否要追蹤公用程式命令。
pg_stat_statements.max 111213141516 設定 pg_stat_statements 所追蹤的陳述式數目上限。
pg_stat_statements.save 111213141516 在伺服器關機期間儲存 pg_stat_statements 統計資料。
pg_stat_statements.track 111213141516 控制 pg_stat_statements 所計算的陳述式。
pg_stat_statements.track_utility 111213141516 選取 pg_stat_statements 是否要追蹤公用程式命令。

開發人員選項

名稱 版本 描述
allow_in_place_tablespaces 111213141516 允許資料表空間直接在 pg_tblspc 內進行測試。
allow_system_table_mods 111213141516 允許修改系統資料表的結構。
backtrace_functions 13141516 記錄這些函式中錯誤的反向追蹤。
debug_discard_caches 141516 基於偵錯目的,積極排清系統快取。
debug_parallel_query 16 強制使用平行查詢設施。
force_parallel_mode 1112131415 強制使用平行查詢設施。
ignore_checksum_failure 111213141516 在總和檢查碼失敗之後繼續處理。
ignore_invalid_pages 13141516 在無效的分頁失敗之後繼續復原。
ignore_system_indexes 111213141516 停用從系統索引中讀取。
jit_debugging_support 111213141516 向偵錯工具登錄 JIT 編譯的函式。
jit_dump_bitcode 111213141516 寫出 LLVM Bitcode 以輔助 JIT 偵錯。
jit_expressions 111213141516 允許運算式的 JIT 編譯。
jit_profiling_support 111213141516 向效能分析工具登錄 JIT 編譯的函式。
jit_tuple_deforming 111213141516 允許 Tuple 變形的 JIT 編譯。
post_auth_delay 111213141516 設定要在連線啟動時驗證之後等候的時間量。
pre_auth_delay 111213141516 設定要在連線啟動時驗證之前等候的時間量。
remove_temp_files_after_crash 1416 在後端損毀之後移除暫存檔案。
trace_notify 111213141516 針對 LISTEN 和 NOTIFY 產生偵錯輸出。
trace_recovery_messages 111213141516 啟用復原相關偵錯資訊的記錄。
trace_sort 111213141516 在排序期間發出資源使用狀況的相關資訊。
wal_consistency_checking 111213141516 設定要完成 WAL 一致性檢查的 WAL 資源管理員。
zero_damaged_pages 111213141516 繼續處理過去已損毀的頁首。

錯誤處理

名稱 版本 描述
data_sync_retry 111213141516 是否要在無法同步處理資料檔案之後繼續執行。
exit_on_error 111213141516 在發生任何錯誤時終止工作階段。
recovery_init_sync_method 141516 設定在損毀修復之前同步處理資料目錄的方法。
restart_after_crash 111213141516 在後端損毀後重新初始化伺服器。

檔案位置

名稱 版本 描述
config_file 111213141516 設定伺服器的主要設定檔。
data_directory 111213141516 設定伺服器的資料目錄。
external_pid_file 111213141516 將 postmaster PID 寫入到指定的檔案。
hba_file 111213141516 設定伺服器的 "hba" 設定檔。
ident_file 111213141516 設定伺服器的 "ident" 設定檔。

鎖定管理

名稱 版本 描述
deadlock_timeout 111213141516 設定在檢查鎖死之前等待鎖定的時間量 (以毫秒為單位)。
max_locks_per_transaction 111213141516 設定可針對每個交易採用的鎖定數目上限。 執行複本伺服器時,您必須將此參數設定為與主要伺服器相同或更高的值。
max_pred_locks_per_page 111213141516 設定每個頁面的述詞鎖定 Tuple 數目上限。
max_pred_locks_per_relation 111213141516 設定每個關聯的述詞鎖定頁面和 Tuple 數目上限。
max_pred_locks_per_transaction 111213141516 設定每個交易的述詞鎖定數目上限。

預設選項

名稱 版本 描述
block_size 111213141516 顯示磁碟區塊的大小。
data_checksums 111213141516 顯示是否要針對此叢集開啟資料總和檢查碼。
data_directory_mode 111213141516 顯示資料目錄的模式。
debug_assertions 111213141516 顯示執行中的伺服器是否已啟用判斷提示檢查。
in_hot_standby 141516 顯示熱待命伺服器目前是否作用中。
integer_datetimes 111213141516 顯示日期時間是否會以整數為基礎。
lc_collate 1112131415 顯示定序順序地區設定。
lc_ctype 1112131415 顯示字元分類和大小寫轉換地區設定。
max_function_args 111213141516 顯示函式引數的數目上限。
max_identifier_length 111213141516 顯示識別碼長度上限。
max_index_keys 111213141516 顯示索引鍵數目上限。
segment_size 111213141516 顯示每個磁碟檔案的分頁數。
server_encoding 111213141516 顯示伺服器 (資料庫) 字元集編碼。
server_version 111213141516 顯示伺服器版本。
server_version_num 111213141516 將伺服器版本顯示為整數。
shared_memory_size 1516 顯示伺服器主要共用記憶體區域的大小 (四捨五入到最接近的 MB)。
shared_memory_size_in_huge_pages 1516 顯示主要共用記憶體區域所需的大型分頁數目。
ssl_library 1213141516 顯示 SSL 程式庫的名稱。
wal_block_size 111213141516 顯示預寫記錄檔中的區塊大小。
wal_segment_size 111213141516 顯示預寫記錄檔區段的大小。

處理標題

名稱 版本 描述
cluster_name 111213141516 設定包含在處理標題中的叢集名稱。
update_process_title 111213141516 更新處理標題,以顯示使用中的 SQL 命令。

查詢微調/基因查詢最佳化工具

名稱 版本 描述
geqo 111213141516 啟用基因查詢最佳化。
geqo_effort 111213141516 GEQO:注意力用在設定其他 GEQO 參數的預設值。
geqo_generations 111213141516 GEQO:演算法的反覆運算次數。
geqo_pool_size 111213141516 GEQO:母體中的人數。
geqo_seed 111213141516 GEQO:隨機選取路徑的種子。
geqo_selection_bias 111213141516 GEQO:母體內的選擇性壓力。
geqo_threshold 111213141516 設定 FROM 項目的閾值,超過該閾值即會使用 GEQO。

查詢微調/其他規劃工具選項

名稱 版本 描述
constraint_exclusion 111213141516 控制查詢規劃工具使用資料表條件約束來將查詢最佳化。
cursor_tuple_fraction 111213141516 設定規劃工具對將擷取之游標資料列佔比的估計值。
default_statistics_target 111213141516 設定在沒有資料列特定目標的情況下,資料表資料行的預設統計資料目標。
from_collapse_limit 111213141516 規劃工具會在 FROM 子句中將子查詢合併到上層查詢,直到達到此限制為止。 較小的值可減少規劃時間,但可能會產生低劣的查詢計劃。
jit 111213141516 判斷 PostgreSQL 是否可以使用 JIT 編譯。
join_collapse_limit 111213141516 設定開始不會將 JOIN 建構扁平化的 FROM 清單大小。
plan_cache_mode 1213141516 控制規劃工具選取自訂或一般計劃。
recursive_worktable_factor 1516 設定規劃工具對遞迴查詢工作資料表平均大小的估計值。

查詢微調/規劃工具成本常數

名稱 版本 描述
cpu_index_tuple_cost 111213141516 設定規劃工具在索引掃描期間處理每個索引項目的成本估計值。
cpu_operator_cost 111213141516 設定規劃工具對處理在查詢期間執行的每個運算子或函式的成本估計值。
cpu_tuple_cost 111213141516 設定規劃工具對在查詢期間處理每一列的成本估計值。
effective_cache_size 111213141516 設定規劃工具對磁碟快取大小的假設。
jit_above_cost 111213141516 設定查詢成本,若超過該成本則會啟動 JIT 編譯 (如果已啟用)。
jit_inline_above_cost 111213141516 設定查詢成本,若超過該成本,JIT 編譯就會嘗試內嵌函式和運算子。
jit_optimize_above_cost 111213141516 設定查詢成本,若超過該成本,JIT 編譯就會套用昂貴的最佳化。
min_parallel_index_scan_size 111213141516 針對平行掃描設定索引資料量下限。
min_parallel_table_scan_size 111213141516 設定必須掃描的資料表資料量下限,才能將平行掃描納入考量。
parallel_setup_cost 111213141516 設定規劃工具針對平行查詢啟動背景工作處理序的成本估計值。
parallel_tuple_cost 111213141516 設定規劃工具對將每個 Tuple (資料列) 從背景工作傳遞到主要後端的成本估計值。
random_page_cost 111213141516 設定規劃工具對非循序擷取之磁碟分頁的成本估計值。
seq_page_cost 111213141516 設定規劃工具對循序擷取之磁碟分頁的成本估計值。

查詢微調/規劃工具方法設定

名稱 版本 描述
enable_async_append 141516 讓規劃工具能夠使用非同步附加計劃。
enable_bitmapscan 111213141516 讓規劃工具能夠使用點陣圖掃描計劃。
enable_gathermerge 111213141516 讓規劃工具能夠使用收集合併計劃。
enable_hashagg 111213141516 讓規劃工具能夠使用雜湊彙總計劃。
enable_hashjoin 111213141516 讓規劃工具能夠使用雜湊聯結計劃。
enable_incremental_sort 13141516 讓規劃工具能夠使用累加排序步驟。
enable_indexonlyscan 111213141516 讓規劃工具能夠使用僅限索引掃描計劃。
enable_indexscan 111213141516 讓規劃工具能夠使用索引掃描計劃。
enable_material 111213141516 讓規劃工具能夠使用具體化。
enable_memoize 141516 讓規劃工具能夠使用記憶化。
enable_mergejoin 111213141516 讓規劃工具能夠使用合併聯結計劃。
enable_nestloop 111213141516 讓規劃工具能夠使用巢狀迴圈聯結計劃。
enable_parallel_append 111213141516 讓規劃工具能夠使用平行附加計劃。
enable_parallel_hash 111213141516 讓規劃工具能夠使用平行雜湊計劃。
enable_partition_pruning 111213141516 啟用計劃時間與執行時間分割區剪除。
enable_partitionwise_aggregate 111213141516 啟用或停用查詢規劃工具使用分割區群組或彙總,以允許針對每個分割區個別執行的分割區資料表進行分組或彙總。
enable_partitionwise_join 111213141516 啟用或停用查詢規劃工具使用分割區聯結,允許透過聯結相符的分割區來執行分割區資料表之間的聯結。
enable_seqscan 111213141516 讓規劃工具能夠使用循序掃描計劃。
enable_sort 111213141516 讓規劃工具能夠使用明確的排序步驟。
enable_tidscan 111213141516 讓規劃工具能夠使用 TID 掃描計劃。

複寫/主要伺服器

名稱 版本 描述
synchronous_standby_names 111213141516 同步待命伺服器數目和潛在同步待命伺服器的名稱清單。

複寫/主要伺服器

名稱 版本 描述
synchronous_standby_names 111213141516 同步待命伺服器數目和潛在同步待命伺服器的名稱清單。
vacuum_defer_cleanup_age 1112131415 指定 VACUUM 和 HOT 更新將延遲清理無效資料列版本的交易數目。

複寫/傳送伺服器

名稱 版本 描述
max_replication_slots 111213141516 指定伺服器可支援的複寫位置數目上限。
max_slot_wal_keep_size 13141516 設定複寫位置可以保留的 WAL 大小上限。
max_wal_senders 111213141516 設定同時執行 WAL 傳送者處理序的數目上限。
track_commit_timestamp 111213141516 收集交易認可時間。
wal_keep_segments 1112 設定要針對待命伺服器保留的 WAL 檔案數目。
wal_keep_size 13141516 設定要針對待命伺服器保留的 WAL 檔案大小。
wal_sender_timeout 111213141516 設定等候 WAL 複寫的時間上限。

複寫/待命伺服器

名稱 版本 描述
hot_standby 111213141516 允許復原期間的連線和查詢。
hot_standby_feedback 111213141516 啟用/停用選項:熱待命伺服器是否需要向主要或上游待命伺服器傳送關於目前在待命伺服器上執行查詢的意見反應。
max_standby_archive_delay 111213141516 設定當熱待命伺服器正在處理封存的 WAL 資料時取消發生衝突之查詢前的延遲上限。
max_standby_streaming_delay 111213141516 設定當熱待命伺服器正在處理已串流處理的 WAL 資料時取消發生衝突之查詢前的延遲上限。
primary_conninfo 1213141516 設定用來連線到傳送伺服器的連接字串。
primary_slot_name 1213141516 設定要在傳送伺服器上使用的複寫位置名稱。
promote_trigger_file 12131415 指定檔案名稱,其目前狀態會在待命伺服器中結束復原。
recovery_min_apply_delay 1213141516 設定復原期間套用變更的延遲下限。
wal_receiver_create_temp_slot 13141516 設定如果未設定永久位置,WAL 接收者是否應該建立暫存複寫位置。
wal_receiver_status_interval 111213141516 設定向主要伺服器報告 WAL 接收者狀態的最大間隔。
wal_receiver_timeout 111213141516 設定從傳送伺服器接收資料的等候時間上限。
wal_retrieve_retry_interval 111213141516 設定在嘗試失敗之後重試以擷取 WAL 之前的等待時間。

複寫/訂閱者

名稱 版本 描述
max_logical_replication_workers 111213141516 指定邏輯複寫背景工作的數目上限。 這包括套用背景工作和資料表同步處理背景工作。
max_parallel_apply_workers_per_subscription 16 設定每個訂用帳戶在邏輯複寫中可使用的最大平行套用背景工作角色數量。
max_sync_workers_per_subscription 111213141516 每個訂用帳戶的資料表同步處理背景工作數目上限。

報告與記錄/記錄的內容

名稱 版本 描述
application_name 111213141516 設定要在統計資料和記錄中報告的應用程式名稱。
debug_pretty_print 111213141516 縮排剖析和計劃樹狀結構顯示。
debug_print_parse 111213141516 Logs each query's parse tree. (記錄每個查詢的剖析樹狀目錄。)
debug_print_plan 111213141516 Logs each query's execution plan. (記錄每個查詢的執行計畫。)
debug_print_rewritten 111213141516 Logs each query's rewritten parse tree. (記錄每個查詢的重寫剖析樹狀目錄。)
log_autovacuum_min_duration 111213141516 設定執行時間下限,若超過此下限,就會記錄自動資料清理動作。
log_checkpoints 111213141516 記錄每個檢查點。
log_connections 111213141516 導致記錄每次嘗試對伺服器的連線,以及成功完成的用戶端驗證。
log_disconnections 111213141516 記錄工作階段的結束時間,包括持續期間。
log_duration 111213141516 記錄每個已完成 SQL 陳述式的持續期間。
log_error_verbosity 111213141516 控制針對記錄的每個訊息,在伺服器記錄中寫入的詳細資料量。
log_hostname 111213141516 在連線記錄中記錄主機名稱。
log_line_prefix 111213141516 設定在每個記錄行開頭輸出的 printf 樣式字串。
log_lock_waits 111213141516 控制當工作階段等候的時間超過 deadlock_timeout 才取得鎖定時,是否要產生記錄訊息。
log_parameter_max_length 13141516 設定在記錄陳述式時,為繫結參數值記錄的資料長度上限 (以位元組為單位)。
log_parameter_max_length_on_error 13141516 設定在記錄陳述式時,於發生錯誤時為繫結參數值記錄的資料長度上限 (以位元組為單位)。
log_recovery_conflict_waits 141516 控制當啟動處理序針對復原衝突等候超過 deadlock_timeout 時,是否要產生記錄訊息。
log_replication_commands 111213141516 記錄每個複寫命令。
log_statement 111213141516 設定所記錄的陳述式類型。
log_temp_files 111213141516 記錄使用大於此 KB 數的暫存檔案。
log_timezone 111213141516 設定要在記錄訊息中使用的時區。

報告與記錄/記錄的時機

名稱 版本 描述
log_min_duration_sample 13141516 設定執行時間下限,若超過此下限,就會記錄陳述式樣本。 取樣取決於 log_statement_sample_rate。
log_min_duration_statement 111213141516 設定執行時間下限 (以毫秒為單位),若超過此下限,就會記錄陳述式。 -1 會停用記錄陳述式持續期間。
log_min_error_statement 111213141516 導致產生此層級或高於此層級錯誤的所有陳述式進行記錄。
log_min_messages 111213141516 控制要寫入到伺服器記錄的訊息層級。
log_startup_progress_interval 1516 長時間執行啟動作業進度更新之間的時間。
log_statement_sample_rate 13141516 超過 log_min_duration_sample 的陳述式佔比都會記錄。
log_transaction_sample_rate 1213141516 設定要記錄所有陳述式之交易的佔比。

報告與記錄/記錄的位置

名稱 版本 描述
event_source 111213141516 設定用來在事件記錄檔中識別 PostgreSQL 訊息的應用程式名稱。
log_destination 111213141516 設定伺服器記錄輸出的目的地。
log_directory 111213141516 設定記錄檔的目的地目錄。
log_file_mode 111213141516 設定記錄檔的檔案權限。
log_filename 111213141516 設定記錄檔的檔案名稱模式。
logging_collector 111213141516 啟動子處理序,將 stderr 輸出和/或 csvlog 擷取到記錄檔。
log_rotation_age 111213141516 設定在強制記錄檔輪替之前要等候的時間量。
log_rotation_size 111213141516 設定記錄檔在輪替之前可達到的大小上限。
log_truncate_on_rotation 111213141516 在記錄輪替期間截斷相同名稱的現有記錄檔。
syslog_facility 111213141516 設定在啟用 syslog 時要使用的 syslog「設施」。
syslog_ident 111213141516 設定用來在 syslog 中識別 PostgreSQL 訊息的程式名稱。
syslog_sequence_numbers 111213141516 將序號新增至 syslog 訊息,以避免重複歸併。
syslog_split_messages 111213141516 依行分割傳送至 syslog 的訊息,以符合 1024 個位元組。

資源使用狀況/非同步行為

名稱 版本 描述
backend_flush_after 111213141516 要將先前所執行寫入排清到磁碟的最後分頁數。
effective_io_concurrency 111213141516 設定 PostgreSQL 預期可以同時執行的並行磁碟 I/O 作業數目。
maintenance_io_concurrency 13141516 用於維護工作的 effective_io_concurrency 變化。
max_parallel_maintenance_workers 111213141516 設定每個維護作業的平行處理序數目上限。
max_parallel_workers 111213141516 設定平行作業所支援背景工作數目上限。
max_parallel_workers_per_gather 111213141516 設定每個執行程式節點的平行處理序數目上限。
max_worker_processes 111213141516 設定系統可支援的背景處理序數目上限。
parallel_leader_participation 111213141516 控制收集與收集合併是否也會執行子計劃。

資源使用狀況/背景寫入器

名稱 版本 描述
bgwriter_delay 111213141516 指定背景寫入器的活動回合之間的延遲。 在每個回合中,寫入器會針對一定數量的中途緩衝區發出寫入作業。
bgwriter_flush_after 111213141516 將背景寫入器先前執行的寫入排清到磁碟的最後分頁數。
bgwriter_lru_maxpages 111213141516 在每個回合中,背景寫入器不會寫入多於這個數目的緩衝區。
bgwriter_lru_multiplier 111213141516 緩衝區最近的平均需求乘以 bgwriter_lru_multiplier,以得出下一回合所需的緩衝區數目估計值。

資源使用狀況/成本型真空延遲

名稱 版本 描述
vacuum_cost_delay 111213141516 超過成本限制時,真空處理序將進入睡眠的時間量 (以毫秒為單位)。
vacuum_cost_limit 111213141516 導致清理處理序進入睡眠的累積成本。
vacuum_cost_page_dirty 111213141516 當 VACUUM 修改先前清除的區塊時所收取的估計成本。
vacuum_cost_page_hit 111213141516 清理在共用緩衝區快取中找到之緩衝區的估計成本。
vacuum_cost_page_miss 111213141516 清理必須從磁碟讀取之緩衝區的估計成本。

資源使用狀況/磁碟

名稱 版本 描述
temp_file_limit 111213141516 限制每個處理序所使用之所有暫存檔案的大小總計。

資源使用狀況/核心資源

名稱 版本 描述
max_files_per_process 111213141516 設定每個伺服器處理序同時開啟檔案的數目上限。

資源使用狀況/記憶體

名稱 版本 描述
autovacuum_work_mem 111213141516 設定每個自動資料清理背景工作處理序要使用的記憶體上限。
dynamic_shared_memory_type 111213141516 選取所使用的動態共用記憶體實作。
hash_mem_multiplier 1213141516 要用於雜湊表的多個 work_mem。
huge_pages 111213141516 啟用/停用大型記憶體分頁的使用。 此設定不適用於虛擬核心少於 4 個的伺服器。
huge_page_size 141516 應要求的大型分頁大小。
logical_decoding_work_mem 13141516 設定要用於邏輯解碼的記憶體上限。
maintenance_work_mem 111213141516 設定要用於維護作業 (例如 VACUUM、建立索引) 的記憶體上限。
max_prepared_transactions 111213141516 設定同時備妥的交易數目上限。 執行複本伺服器時,您必須將此參數設定為與主要伺服器相同或更高的值。
max_stack_depth 111213141516 設定堆疊深度上限,以 KB 為單位。
min_dynamic_shared_memory 141516 要在啟動時保留的動態共用記憶體數量。
shared_buffers 111213141516 設定伺服器所使用的共用記憶體緩衝區數目。 單位為 8kb。 允許的值介於可用記憶體 10% - 75% 的範圍內。
shared_memory_type 1213141516 選取要用於主要共用記憶體區域的共用記憶體實作。
temp_buffers 111213141516 設定每個資料庫工作階段所使用的暫存緩衝區數目上限。
work_mem 111213141516 設定在寫入到暫存磁碟檔案之前,內部排序作業和雜湊表所使用的記憶體數量。

統計資料/累計查詢和索引 Bing 統計資料

名稱 版本 描述
stats_fetch_consistency 1516 設定存取統計資料的一致性。
track_activities 111213141516 收集針對每個工作階段執行命令的相關資訊。
track_activity_query_size 111213141516 設定保留給 pg_stat_activity.query 的記憶體數量 (以位元組為單位)。
track_counts 111213141516 在資料庫活動上啟用統計資料的收集
track_functions 111213141516 啟用函式呼叫計數和所用時間的追蹤。
track_io_timing 111213141516 啟用資料庫 I/O 呼叫的計時。
track_wal_io_timing 141516 收集 WAL I/O 活動的計時統計資料。

統計資料/監視

名稱 版本 描述
compute_query_id 141516 啟用查詢識別碼的核心內計算。
log_executor_stats 111213141516 將執行程式效能統計資料寫入到伺服器記錄。
log_parser_stats 111213141516 將剖析器效能統計資料寫入到伺服器記錄。
log_planner_stats 111213141516 將規劃工具效能統計資料寫入到伺服器記錄。
log_statement_stats 111213141516 針對每個查詢,將累積效能統計資料寫入到伺服器記錄。

統計資料/查詢和索引統計資料收集器

名稱 版本 描述
stats_temp_directory 11121314 將暫存統計資料檔案寫入到指定的目錄。

版本和平台相容性/其他平台和用戶端

名稱 版本 描述
transform_null_equals 111213141516 開啟時,格式 expr = NULL (或 NULL = expr) 的運算式會被視為 expr IS NULL,也就是說,如果 expr 評估為 Null 值,即會傳回 true,否則會傳回 false。

版本和平台相容性/舊版 PostgreSQL 版本

名稱 版本 描述
array_nulls 111213141516 允許將 NULL 的輸入 (不區分大小寫) 視為 NULL 值,而不是常值字串 'NULL'。
backslash_quote 111213141516 設定字串常值中是否允許 "\'"。
escape_string_warning 111213141516 警告一般字串常值中的反斜線逸出。
lo_compat_privileges 111213141516 啟用回溯相容性模式以進行大型物件權限檢查。
operator_precedence_warning 1112 針對自 PostgreSQL 9.4 以來意義已變更的建構發出警告。
quote_all_identifiers 111213141516 產生 SQL 片段時,將所有識別碼加上引號。
standard_conforming_strings 111213141516 導致 '...' 字串要按其原義處理反斜線。
synchronize_seqscans 111213141516 啟用同步處理的循序掃描。

預寫記錄檔/封存復原

名稱 版本 描述
archive_cleanup_command 1213141516 設定將在每次重新啟動時執行的殼層命令。
recovery_end_command 1213141516 設定將在復原結束時執行的殼層命令。
restore_command 1213141516 設定將呼叫來擷取封存 WAL 檔案的殼層命令。

預寫記錄檔/封存

名稱 版本 描述
archive_command 111213141516 設定將呼叫來封存 WAL 檔案的殼層命令。
archive_library 1516 設定將呼叫來封存 WAL 檔案的程式庫。
archive_mode 111213141516 允許使用 archive_command 封存 WAL 檔案。
archive_timeout 111213141516 如果未在 N 秒內啟動新檔案,則強制切換到下一個 WAL 檔案。

預寫記錄檔/檢查點

名稱 版本 描述
checkpoint_completion_target 111213141516 指定檢查點完成的目標,做為檢查點之間總時間的佔比。
checkpoint_flush_after 111213141516 要將先前所執行寫入排清到磁碟的最後分頁數。
checkpoint_timeout 111213141516 自動 WAL 檢查點之間的時間上限 (以秒為單位)。 有效範圍介於 30 秒到一天之間。
checkpoint_warning 111213141516 如果因填滿 WAL 區段而導致的檢查點會比此情況更頻繁,則寫入警告訊息。
max_wal_size 111213141516 大小上限,當 WAL 成長到此上限後,就會觸發自動檢查點。
min_wal_size 111213141516 設定要將 WAL 縮小的目標大小下限。

預寫記錄檔/復原

名稱 版本 描述
recovery_prefetch 1516 復原期間預先擷取參考的區塊。
wal_decode_buffer_size 1516 復原期間用於在 WAL 中預先讀取的緩衝區大小。

預寫記錄檔/復原目標

名稱 版本 描述
recovery_target 1213141516 設定為 "immediate",在達到一致狀態之後立即結束復原。
recovery_target_action 1213141516 設定在到達復原目標時要執行的動作。
recovery_target_inclusive 1213141516 設定是否要包含或排除具有復原目標的交易。
recovery_target_lsn 1213141516 設定預寫記錄檔位置的 LSN,復原將會在到達時繼續進行。
recovery_target_name 1213141516 設定將繼續進行復原的具名還原點。
recovery_target_time 1213141516 設定將繼續進行復原的時間戳記。
recovery_target_timeline 1213141516 指定要復原的時程表。
recovery_target_xid 1213141516 設定將繼續進行復原的交易識別碼。

預寫記錄檔/設定

名稱 版本 描述
commit_delay 111213141516 設定交易認可與將 WAL 排清到磁碟之間的延遲 (以微秒為單位)。
commit_siblings 111213141516 設定在執行 commit_delay 之前並行開啟交易的下限。
fsync 111213141516 強制同步處理磁碟的更新。
full_page_writes 111213141516 在檢查點之後第一次修改時,將完整分頁寫入到 WAL。
synchronous_commit 111213141516 設定目前交易的同步處理層級。
wal_buffers 111213141516 設定 WAL 共用記憶體中的磁碟分頁緩衝區數目。 單位為 8kb。
wal_compression 111213141516 壓縮在 WAL 檔案中寫入的完整分頁寫入。
wal_init_zero 1213141516 在第一次使用之前,將零寫入到新的 WAL 檔案。
wal_level 111213141516 其決定要將多少資訊寫入到 WAL。
wal_log_hints 111213141516 在檢查點之後第一次修改時,將完整分頁寫入到 WAL,即使對於非重大修改也是如此。
wal_recycle 1213141516 透過重新命名 WAL 檔案來回收它們。
wal_skip_threshold 13141516 將新檔案的大小下限設為 fsync,而不是寫入 WAL。
wal_sync_method 111213141516 選取用來強制 WAL 更新至磁碟的方法。
wal_writer_delay 111213141516 WAL 寫入器所執行 WAL 排清之間的時間間隔。
wal_writer_flush_after 111213141516 由觸發排清之 WAL 寫入器寫出的 WAL 數量。

下一步

如需所支援 PostgreSQL 延伸模組的詳細資訊,請參閱適用於 PostgreSQL 的 Azure 資料庫 - 彈性伺服器中的 PostgreSQL 延伸模組