新聞中心
作為企業(yè)級(jí)應(yīng)用程序的核心組成部分,數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)存儲(chǔ)和訪問是非常重要的。為了保證數(shù)據(jù)庫系統(tǒng)的穩(wěn)定性、安全性和性能,我們需要對其參數(shù)進(jìn)行設(shè)置和管理。本文將。

在鐘祥等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站建設(shè)、成都網(wǎng)站設(shè)計(jì) 網(wǎng)站設(shè)計(jì)制作定制開發(fā),公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),品牌網(wǎng)站制作,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè)公司,鐘祥網(wǎng)站建設(shè)費(fèi)用合理。
一、數(shù)據(jù)庫參數(shù)的作用
在數(shù)據(jù)庫系統(tǒng)中,參數(shù)是指用于控制數(shù)據(jù)庫系統(tǒng)行為的變量,可以對其進(jìn)行設(shè)置和修改。數(shù)據(jù)庫系統(tǒng)中有各種類型的參數(shù),如實(shí)例參數(shù)、會(huì)話參數(shù)和系統(tǒng)參數(shù)等。這些參數(shù)值的設(shè)置和管理對數(shù)據(jù)庫系統(tǒng)的性能和安全性都有著重要的影響。
二、數(shù)據(jù)庫參數(shù)的分類
1. 實(shí)例參數(shù)
實(shí)例參數(shù)是指對整個(gè)數(shù)據(jù)庫實(shí)例起效的參數(shù),不同的實(shí)例可以有不同的參數(shù)設(shè)置。例如,自動(dòng)檢查點(diǎn)、緩存大小、并發(fā)連接數(shù)等。實(shí)例參數(shù)可以通過修改配置文件或SQL命令進(jìn)行設(shè)置。
2. 會(huì)話參數(shù)
會(huì)話參數(shù)是指對一個(gè)特定會(huì)話起效的參數(shù),會(huì)話參數(shù)的設(shè)置只影響當(dāng)前會(huì)話,不影響其他會(huì)話甚至其他實(shí)例。例如,排序規(guī)則、日期格式、語言等。
3. 系統(tǒng)參數(shù)
系統(tǒng)參數(shù)是指硬件或操作系統(tǒng)在數(shù)據(jù)存儲(chǔ)過程中發(fā)揮的作用。例如,CPU的數(shù)量、內(nèi)存的大小、操作系統(tǒng)的類型等。
三、數(shù)據(jù)庫參數(shù)值的設(shè)置方法
1. 實(shí)例參數(shù)設(shè)置方法
實(shí)例參數(shù)可以通過SQL命令或修改配置文件來設(shè)置。例如,通過SQL語句修改自動(dòng)檢查點(diǎn)參數(shù):
ALTER SYSTEM SET CHECKPOINT_TIMEOUT = 300;
修改配置文件來設(shè)置緩沖區(qū)大?。?/p>
buffer_pool_size=128Mb
2. 會(huì)話參數(shù)設(shè)置方法
會(huì)話參數(shù)可以通過ALTER SESSION命令來設(shè)置。例如,為一個(gè)新的會(huì)話設(shè)置排序規(guī)則:
ALTER SESSION SET NLS_SORT=’FRENCH’;
3. 系統(tǒng)參數(shù)設(shè)置方法
系統(tǒng)參數(shù)設(shè)置方法因操作系統(tǒng)而異,一般可以在操作系統(tǒng)或BIOS中進(jìn)行設(shè)置。例如,在Linux系統(tǒng)中,可以通過編輯/sys/module/kvm_intel/parameters/nested參數(shù)來設(shè)置虛擬化。
四、數(shù)據(jù)庫參數(shù)值的管理方法
1. 監(jiān)控?cái)?shù)據(jù)庫參數(shù)值
對數(shù)據(jù)庫系統(tǒng)的參數(shù)進(jìn)行設(shè)置后,我們需要對其進(jìn)行監(jiān)控,以確保其在運(yùn)行中不會(huì)出現(xiàn)性能問題。不同的數(shù)據(jù)庫管理軟件提供了不同的監(jiān)控方法,例如Oracle提供了Enterprise Manager。
2. 修改數(shù)據(jù)庫參數(shù)值
當(dāng)數(shù)據(jù)庫系統(tǒng)的性能出現(xiàn)問題時(shí),我們需要及時(shí)調(diào)整數(shù)據(jù)庫參數(shù)值以解決問題。不同的數(shù)據(jù)庫系統(tǒng)有不同的性能調(diào)整方法,例如,Oracle提供了SQL Tuning Advisor和Memory Advisor。
3. 回滾數(shù)據(jù)庫參數(shù)值
當(dāng)數(shù)據(jù)庫參數(shù)值的調(diào)整出現(xiàn)問題時(shí),我們需要及時(shí)回滾以恢復(fù)到之前的狀態(tài),以免影響到數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行。不同的數(shù)據(jù)庫管理軟件有不同的回滾方法,例如,Oracle提供了Undo SQL命令。
五、
數(shù)據(jù)庫參數(shù)值的設(shè)置和管理對于數(shù)據(jù)庫系統(tǒng)的性能和安全性至關(guān)重要。不同類型的參數(shù)值需要不同的設(shè)置和管理方法,以確保數(shù)據(jù)庫系統(tǒng)的正常運(yùn)行。同時(shí),我們需要及時(shí)監(jiān)控?cái)?shù)據(jù)庫參數(shù)值、修改數(shù)據(jù)庫參數(shù)值和回滾數(shù)據(jù)庫參數(shù)值,以滿足不同的性能需求和解決問題。
相關(guān)問題拓展閱讀:
- access數(shù)據(jù)庫數(shù)據(jù)庫表中查詢條件 Year([入校時(shí)間])=2023總會(huì)出現(xiàn)出入?yún)?shù)值,怎么解決?
- postgressql數(shù)據(jù)源怎么配置
access數(shù)據(jù)庫數(shù)據(jù)庫表中查詢條件 Year([入校時(shí)間])=2023總會(huì)出現(xiàn)出入?yún)?shù)值,怎么解決?
我剛才也試過。。。。沒有出現(xiàn)輸入?yún)?shù)啊碰嫌。 我是在條件里填:仔啟year()=是沒念吵如有加””的。你看看是不是這個(gè)原因
在查詢中新建一列,這一列 = Year() ,嘩罩然后再在篩選中 =2023
另外一種方法就是 between 2023/1/1 and 2023/12/31
因?yàn)楹Y選是亂饑鬧直接拿列的數(shù)據(jù)做比較,你肢戚Year()這樣一下,計(jì)算機(jī)就懵了,它看不懂。
入校時(shí)間
postgressql數(shù)據(jù)源怎么配置
PostgresSQL提供了許多數(shù)據(jù)庫配置參數(shù),本章將介紹每個(gè)參數(shù)的作用和如何配置每一個(gè)參數(shù)。
10.1 如何設(shè)置數(shù)據(jù)庫參數(shù)
所有的參數(shù)的名稱都是不區(qū)分大小寫的。每個(gè)參數(shù)的取值是布爾型、整型、浮點(diǎn)型和字符串型這四種類型中的一個(gè),分別用boolean
、integer、 floating point和string表示。布爾型的值可以寫成ON、OFF、 TRUE、 FALSE、 YES、 NO、 1和 0,而且不區(qū)分大小
寫。
有些參數(shù)用來配置內(nèi)存大小和時(shí)間值。內(nèi)存大小的單位可以是KB、MB和GB。時(shí)間的單位可以是毫秒、秒、分鐘、小時(shí)和天。用ms表示
毫秒,用s表示秒,用 min表示分鐘,用h表示小時(shí),用d表示天。表示內(nèi)存大小和時(shí)間值的參數(shù)參數(shù)都有一個(gè)默認(rèn)的單位,如果用戶
在設(shè)置參數(shù)的值時(shí)沒有指定單位,則以參數(shù)默認(rèn)的 單位為準(zhǔn)。例如,參數(shù)shared_buffers表示數(shù)據(jù)緩沖區(qū)的大小,它的默認(rèn)單位是
數(shù)據(jù)塊的個(gè)數(shù),如果把它的值設(shè)成8,因?yàn)槊總€(gè)數(shù)據(jù)塊的大小是 8KB,則數(shù)據(jù)緩沖區(qū)的大小是8*8=64KB,如果將它的值設(shè)成128MB,
則數(shù)據(jù)緩沖區(qū)的大小是128MB。參數(shù)vacuum_cost_delay 的默認(rèn)單位是毫秒,如果把它的值設(shè)成10,則它的值是10毫秒,如果把它的
值設(shè)成100s,則它的值是100秒。
所有的參數(shù)都放在文件 postgresql.conf中,下面是一個(gè)文件實(shí)例:
#這是注釋
log_connections = yes
log_destination = ‘syslog’
search_path = ‘”$user”, public’
每一行只能指定一個(gè)參數(shù),空格和空白行都會(huì)被忽略。“ #”表示注釋,注釋信息不用單獨(dú)占一行,可以出現(xiàn)在配置文件的任何地方
。如果參數(shù)的值不是簡單的標(biāo)識(shí)符和數(shù)字,應(yīng)該用單引號(hào)引起來。如果參數(shù)的值中有單引號(hào),應(yīng)該寫兩個(gè)單引號(hào),或者在單引號(hào)前面
加一個(gè)反斜杠。
一個(gè)配置文件也可以包含其它配置文件,使用include指令能夠達(dá)到這個(gè)目的,例如,假設(shè)postgresql.conf文件中有下面一行:
include ‘my.confg’
文件my.config中的配置信息也會(huì)被數(shù)據(jù)庫讀入。include指令指定的配置文件也可以用include指令再包含其它配置文件。如果
include指令中指定的文件名不是絕對路徑,數(shù)據(jù)庫會(huì)在postgresql.conf文件所在的目錄下查找這個(gè)文件。
用戶也可以在數(shù)據(jù)庫啟動(dòng)以后修改postgresql.conf配置文件,使用命令pg_ctl reload來通知數(shù)據(jù)庫重新讀取配置文件。注意,有些
參數(shù)在數(shù)據(jù)庫啟動(dòng)以后,不能被修改,只有重新啟動(dòng)數(shù)據(jù)庫以后,新的參數(shù)值才能生效。另外一些參數(shù)可 以在數(shù)據(jù)庫運(yùn)行過程中被
修改而且新的值可以立即生效。所以數(shù)據(jù)庫在運(yùn)行過程中重新讀取參數(shù)配置文件以后,不是所有的參數(shù)都會(huì)被賦給新的值。
用戶可以在自己建立的會(huì)話中執(zhí)行命令SET修改某些配置參數(shù)的值(注意不是全部參數(shù)),例如:
SET ENABLE_SEQSCAN TO OFF;
另外,有些參數(shù)只有數(shù)據(jù)庫超級(jí)用戶才能使用SET命令修改它們。用戶可以在psql中執(zhí)行命令show來查看所有的數(shù)據(jù)庫參數(shù)的當(dāng)前值
。例如:
(1)show all;查看所有數(shù)據(jù)庫參數(shù)的值
(2)show search_path; –查看參數(shù)search_path的值
10.2 連接與認(rèn)證
10.2.1 連接設(shè)置
listen_addresses (string)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它指定數(shù)據(jù)庫用來監(jiān)聽客戶端連接的TCP/IP地址。默認(rèn)是值是* ,表示數(shù)據(jù)庫在啟動(dòng)以
后將在運(yùn)行數(shù)據(jù)的機(jī)器上的所有的IP地址上監(jiān)聽用戶請求(如果機(jī)器只有一個(gè)網(wǎng)卡,只有一個(gè)IP地址,有多個(gè)網(wǎng)卡的機(jī)器有多個(gè) IP
地址)??梢詫懗蓹C(jī)器的名字,也可以寫成IP地址,不同的值用逗號(hào)分開,例如,’server01’, ’140.87.171.49, 140.87.171.21
’。如果被設(shè)成localhost,表示數(shù)據(jù)庫只能接受本地的客戶端連接請求,不能接受遠(yuǎn)程的客戶端連接請求。
port (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它指定數(shù)據(jù)庫監(jiān)聽?wèi)舳诉B接的TCP端口。默認(rèn)值是5432。
max_connections (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它決定數(shù)據(jù)庫可以同時(shí)建立的更大的客戶端連接的數(shù)目。默認(rèn)值是100。
superuser_reserved_connections (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它表示預(yù)留給超級(jí)用戶的數(shù)據(jù)庫連接數(shù)目。它的值必須小于max_connections。 普通用
戶可以在數(shù)據(jù)庫中建立的更大的并發(fā)連接的數(shù)目是max_connections- superuser_reserved_connections, 默認(rèn)值是3。
unix_socket_group (string)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。設(shè)置Unix-domain socket所在的操作系統(tǒng)用戶組。默認(rèn)值是空串,用啟動(dòng)數(shù)據(jù)庫的操作
系統(tǒng)用戶所在的組作為Unix-domain socket的用戶組。
unix_socket_permissions (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它設(shè)置Unix-domain socket的訪問權(quán)限,格式與操作系統(tǒng)的文件訪問權(quán)限是一樣的。默
認(rèn)值是0770,表示任何操作系統(tǒng)用戶都能訪問Unix-domain socket??梢栽O(shè)為0770(所有Unix-domain socket文件的所有者所在的組
包含的用戶都能訪問)和0700(只有Unix-domain socket文件的所有者才能訪問)。對于Unix-domain socket,只有寫權(quán)限才有意義,
讀和執(zhí)行權(quán)限是沒有意義的。
tcp_keepalives_idle (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是0,意思是使用操作系統(tǒng)的默認(rèn)值。它設(shè)置TCP套接字的TCP_KEEPIDLE屬性。這個(gè)參數(shù)對于
通過Unix-domain socket建立的數(shù)據(jù)庫連接沒有任何影響。
tcp_keepalives_interval (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是0,意思是使用操作系統(tǒng)的默認(rèn)值。它設(shè)置TCP套接字的TCP_KEEPINTVL屬性。這個(gè)參數(shù)對
于通過Unix-domain socket建立的數(shù)據(jù)庫連接沒有任何影響。
tcp_keepalives_count (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是0,意思是使用操作系統(tǒng)的默認(rèn)值。它設(shè)置TCP套接字的TCP_KEEPCNT屬性。這個(gè)參數(shù)對于
通過Unix-domain socket建立的數(shù)據(jù)庫連接沒有任何影響。
10.2.2. 安全與認(rèn)證
authentication_timeout (integer)
這個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置,它指定一個(gè)時(shí)間長度,在這個(gè)時(shí)間長度內(nèi),必須完成客戶端認(rèn)證操作,否則客戶端
連接請求將被拒絕。它可以阻止某些客戶端進(jìn)行認(rèn)證時(shí)長時(shí)間占用數(shù)據(jù)庫連接。單位是秒,默認(rèn)值是60。
ssl (boolean)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。決定數(shù)據(jù)庫是否接受SSL連接。默認(rèn)值是off。
ssl_ciphers (string)
指定可以使用的SSL加密算法。查看操作系統(tǒng)關(guān)于openssl的用戶手冊可以得到完整的加密算法列表(執(zhí)行命令openssl ciphers –v
也可以得到)。
10.3 資源消耗
10.3.1 內(nèi)存
shared_buffers (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它表示數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)塊的個(gè)數(shù),每個(gè)數(shù)據(jù)塊的大小是8KB。數(shù)據(jù)緩沖區(qū)位于數(shù)據(jù)
庫的共享內(nèi)存中,它越大越好,不能小于128KB。默認(rèn)值是1024。
temp_buffers (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是8MB。它決定存放臨時(shí)表的數(shù)據(jù)緩沖區(qū)中的數(shù)據(jù)塊的個(gè)數(shù),每個(gè)數(shù)據(jù)塊的大小是8KB。臨時(shí)
表緩沖區(qū)存放在每個(gè)數(shù)據(jù)庫進(jìn)程的私有內(nèi)存中,而不是存放在數(shù)據(jù)庫的共享內(nèi)存中。默認(rèn)值是1024。
max_prepared_transactions (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它決定能夠同時(shí)處于prepared狀態(tài)的事務(wù)的更大數(shù)目(參考PREPARE TRANSACTION命令
)。如果它的值被設(shè)為0。則將數(shù)據(jù)庫將關(guān)閉prepared事務(wù)的特性。它的值通常應(yīng)該和max_connections的值 一樣大。默認(rèn)值是5。
work_mem (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。它決定數(shù)據(jù)庫的排序操作和哈希表使用的內(nèi)存緩沖區(qū)的大小。如何work_mem指定的內(nèi)存被耗盡,數(shù)
據(jù)庫將使用磁盤文件進(jìn) 行完成操作,速度會(huì)慢很多。ORDER BY、DISTINCT和merge連接會(huì)使用排序操作。哈希表在Hash連接、hash聚
集函數(shù)和用哈希表來處理IN謂詞中的子查詢中被使用。單位是 KB,默認(rèn)值是1024。
maintenance_work_mem (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。它決定數(shù)據(jù)庫的維護(hù)操作使用的內(nèi)存空間的大小。數(shù)據(jù)庫的維護(hù)操作包括VACUUM、CREATE INDEX和
ALTER TABLE ADD FOREIGN KEY等操作。 maintenance_work_mem的值如果比較大,通??梢钥s短VACUUM數(shù)據(jù)庫和從dump文件中恢復(fù)數(shù)
據(jù)庫需要的時(shí)間。 maintenance_work_mem存放在每個(gè)數(shù)據(jù)庫進(jìn)程的私有內(nèi)存中,而不是存放在數(shù)據(jù)庫的共享內(nèi)存中。單位是KB,默
認(rèn)值是16384。
max_stack_depth (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置,但只有數(shù)據(jù)庫超級(jí)用戶才能修改它。它決定一個(gè)數(shù)據(jù)庫進(jìn)程在運(yùn)行時(shí)的STACK所占的空間的更大值
。數(shù)據(jù)庫進(jìn)程在運(yùn)行時(shí),會(huì) 自動(dòng)檢查自己的STACK大小是否超過max_stack_depth,如果超過,會(huì)自動(dòng)終止當(dāng)前事務(wù)。這個(gè)值應(yīng)該比
操作系統(tǒng)設(shè)置的進(jìn)程STACK的大小 的上限小1MB。使用操作系統(tǒng)命令“ulimit –s“可以得到操作系統(tǒng)設(shè)置的進(jìn)程STACK的更大值。單
位是KB,默認(rèn)值是100。
10.3.2 Free Space Map
數(shù)據(jù)庫的所有可用空間信息都存放在一個(gè)叫free space map (F)的結(jié)構(gòu)中,它記載數(shù)據(jù)文件中每個(gè)數(shù)據(jù)塊的可用空間的大小。F
中沒有記錄的數(shù)據(jù)塊,即使有可用空間,也不會(huì)系統(tǒng)使用。系統(tǒng)如果需要新的物理存 儲(chǔ)空間,會(huì)首先在F中查找,如果F中沒有
一個(gè)數(shù)據(jù)頁有足夠的可用空間,系統(tǒng)就會(huì)自動(dòng)擴(kuò)展數(shù)據(jù)文件。所以,F(xiàn)如果太小,會(huì)導(dǎo)致系統(tǒng)頻繁地?cái)U(kuò)展數(shù) 據(jù)文件,浪費(fèi)物理存儲(chǔ)
空間。命令VACUUM VERBOSE在執(zhí)行結(jié)束以后,會(huì)提示當(dāng)前的F設(shè)置是否滿足需要,如果F的參數(shù)值太小,它會(huì)提示增大參數(shù)。
F存放在數(shù)據(jù)庫的共享內(nèi)存中,由于物理內(nèi)存的限制,F(xiàn)不可能跟蹤數(shù)據(jù)庫的所有的數(shù)據(jù)文件的所有數(shù)據(jù)塊的可用空間信息,只能
跟蹤一部分?jǐn)?shù)據(jù)塊的可用空間信息。
max_f_relations (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。默認(rèn)值是1000。它決定F跟蹤的表和索引的個(gè)數(shù)的上限。每個(gè)表和索引在F中占7個(gè)
字節(jié)的存儲(chǔ)空間。
max_f_pages (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它決定F中跟蹤的數(shù)據(jù)塊的個(gè)數(shù)的上限。initdb在創(chuàng)建數(shù)據(jù)庫集群時(shí)會(huì)根據(jù)物理內(nèi)存
的大小決定它的值。每 個(gè)數(shù)據(jù)塊在f中占6個(gè)字節(jié)的存儲(chǔ)空間。它的大小不能小于16 * max_f_relations。默認(rèn)值是20230。
10.3.3 內(nèi)核資源
max_files_per_process (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。他設(shè)定每個(gè)數(shù)據(jù)庫進(jìn)程能夠打開的文件的數(shù)目。默認(rèn)值是1000。
shared_preload_libraries (string)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。它設(shè)置數(shù)據(jù)庫在啟動(dòng)時(shí)要加載的操作系統(tǒng)共享庫文件。如果有多個(gè)庫文件,名字用逗號(hào)
分開。如果數(shù)據(jù)庫在啟動(dòng)時(shí)未找到shared_preload_libraries指定的某個(gè)庫文件,數(shù)據(jù)庫將無法啟動(dòng)。默認(rèn)值為空串。
10.3.4 垃圾收集
執(zhí)行VACUUM 和ANAZE命令時(shí),因?yàn)樗鼈儠?huì)消耗大量的CPU與IO資源,而且執(zhí)行一次要花很長時(shí)間,這樣會(huì)干擾系統(tǒng)執(zhí)行應(yīng)用程序發(fā)
出的SQL命令。為了解決這個(gè) 問題,VACUUM 和ANAZE命令執(zhí)行一段時(shí)間后,系統(tǒng)會(huì)暫時(shí)終止它們的運(yùn)行,過一段時(shí)間后再繼續(xù)執(zhí)行
這兩個(gè)命令。這個(gè)特性在默認(rèn)的情況下是關(guān)閉的。將參數(shù) vacuum_cost_delay設(shè)為一個(gè)非零的正整數(shù)就可以打開這個(gè)特性。
用戶通常只需要設(shè)置參數(shù)vacuum_cost_delay和vacuum_cost_limit,其它的參數(shù)使用默認(rèn)值即可。VACUUM 和ANAZE命令在執(zhí)行過程
中,系統(tǒng)會(huì)計(jì)算它們執(zhí)行消耗的資源,資源的數(shù)量用一個(gè)正整數(shù)表示,如果資源的數(shù)量超過 vacuum_cost_limit,則執(zhí)行命令的進(jìn)程
會(huì)進(jìn)入睡眠狀態(tài),睡眠的時(shí)間長度是是vacuum_cost_delay。 vacuum_cost_limit的值越大,VACUUM 和ANAZE命令在執(zhí)行的過程中
,睡眠的次數(shù)就越少,反之,vacuum_cost_limit的值越小,VACUUM 和ANAZE命令在執(zhí)行的過程中,睡眠的次數(shù)就越多。
vacuum_cost_delay (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是0。它決定執(zhí)行VACUUM 和ANAZE命令的進(jìn)程的睡眠時(shí)間。單位是微秒。它的值更好是10
的整數(shù),如果不是10的整數(shù),系統(tǒng)會(huì)自動(dòng)將它設(shè)為比該值大的并且最接近該值的是10 的倍數(shù)的整數(shù)。如果值是0,VACUUM 和ANAZE
命令在執(zhí)行過程中不會(huì)主動(dòng)進(jìn)入睡眠狀態(tài),會(huì)一直執(zhí)行下去直到結(jié)束。
vacuum_cost_page_hit (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是1。
vacuum_cost_page_miss (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是10。
vacuum_cost_page_dirty (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是20。
vacuum_cost_limit (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。默認(rèn)值是200。
10.3.5 后臺(tái)寫數(shù)據(jù)庫進(jìn)程
后臺(tái)寫數(shù)據(jù)庫進(jìn)程負(fù)責(zé)將數(shù)據(jù)緩沖區(qū)中的被修改的數(shù)據(jù)塊(又叫臟數(shù)據(jù)塊)寫回到數(shù)據(jù)庫物理文件中。
bgwriter_delay (integer)
這個(gè)參數(shù)只能在文件postgresql.conf中設(shè)置。它決定后臺(tái)寫數(shù)據(jù)庫進(jìn)程的睡眠時(shí)間。后臺(tái)寫數(shù)據(jù)庫進(jìn)程每次完成寫數(shù)據(jù)到物理文件
中的任務(wù)以后, 就會(huì)睡眠bgwriter_delay指定的時(shí)間。 bgwriter_delay的值應(yīng)該是10的倍數(shù),如果用戶設(shè)定的值不是10的倍數(shù),數(shù)
據(jù)庫會(huì)自動(dòng)將參數(shù)的值設(shè)為比用戶指定的值大的最接近用戶指定的值 的同時(shí)是10的倍數(shù)的值。單位是毫秒,默認(rèn)值是200。
bgwriter_lru_maxpages (integer)
這個(gè)參數(shù)只能在文件postgresql.conf中設(shè)置。默認(rèn)值是100。后臺(tái)寫數(shù)據(jù)庫進(jìn)程每次寫臟數(shù)據(jù)塊時(shí),寫到外部文件中的臟數(shù)據(jù)塊的個(gè)
數(shù)不能超過 bgwriter_lru_maxpages指定的值。例如,如果它的值是500,則后臺(tái)寫數(shù)據(jù)庫進(jìn)程每次寫到物理文件的數(shù)據(jù)頁的個(gè)數(shù)不
能超過500,若 超過,進(jìn)程將進(jìn)入睡眠狀態(tài),等下次醒來再執(zhí)行寫物理文件的任務(wù)。如果它的值被設(shè)為0, 后臺(tái)寫數(shù)據(jù)庫進(jìn)程將不會(huì)
寫任何物理文件(但還會(huì)執(zhí)行檢查點(diǎn)操作)。
bgwriter_lru_multiplier (floating point)
這個(gè)參數(shù)只能在文件postgresql.conf中設(shè)置。默認(rèn)值是2.0。它決定后臺(tái)寫數(shù)據(jù)庫進(jìn)程每次寫物理文件時(shí),寫到外部文件中的臟數(shù)據(jù)
塊的個(gè)數(shù) (不能超過bgwriter_lru_maxpages指定的值)。一般使用默認(rèn)值即可,不需要修改這個(gè)參數(shù)。這個(gè)參數(shù)的值越大,后臺(tái)寫
數(shù)據(jù)庫進(jìn)程每次寫 的臟數(shù)據(jù)塊的個(gè)數(shù)就越多。
10.4 事務(wù)日志
full_page_writes (boolean)
這個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置。默認(rèn)值是on。打開這個(gè)參數(shù),可以提高數(shù)據(jù)庫的可靠性,減少數(shù)據(jù)丟失的概率,但
是會(huì)產(chǎn)生過多的事務(wù)日志,降低數(shù)據(jù)庫的性能。
wal_buffers (integer)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。默認(rèn)值是8。它指定事務(wù)日志緩沖區(qū)中包含的數(shù)據(jù)塊的個(gè)數(shù),每個(gè)數(shù)據(jù)塊的大小是8KB,
所以默認(rèn)的事務(wù)日志緩沖區(qū)的大小是8*8=64KB。事務(wù)日志緩沖區(qū)位于數(shù)據(jù)庫的共享內(nèi)存中。
wal_writer_delay (integer)
這個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置。它決定寫事務(wù)日志進(jìn)程的睡眠時(shí)間。WAL進(jìn)程每次在完成寫事務(wù)日志的任務(wù)后,就會(huì)
睡眠 wal_writer_delay指定的時(shí)間,然后醒來,繼續(xù)將新產(chǎn)生的事務(wù)日志從緩沖區(qū)寫到WAL文件中。單位是毫秒(millisecond),
默認(rèn) 值是200。
commit_delay (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。它設(shè)定事務(wù)在發(fā)出提交命令以后的睡眠時(shí)間,只有在睡眠了commit_delay指定的時(shí)間以后,事務(wù)產(chǎn)
生的事務(wù)日志才會(huì) 被寫到事務(wù)日志文件中,事務(wù)才能真正地提交。增大這個(gè)參數(shù)會(huì)增加用戶的等待時(shí)間,但是可以讓多個(gè)事務(wù)被同
時(shí)提交,提高系統(tǒng)的性能。如果數(shù)據(jù)庫中的負(fù)載比較 高,而且大部分事務(wù)都是更新類型的事務(wù),可以考慮增大這個(gè)參數(shù)的值。下面
的參數(shù)commit_siblings會(huì)影響commit_delay是否生效。 默認(rèn)值是0,單位是微秒(microsecond)。
commit_siblings (integer)
這個(gè)參數(shù)可以在任何時(shí)候被設(shè)置。這個(gè)參數(shù)的值決定參數(shù)commit_delay是否生效。假設(shè)commit_siblings的值是5,如果一個(gè)事務(wù)發(fā)出
一個(gè)提交請求,此時(shí),如果數(shù)據(jù)庫中正在執(zhí)行的事務(wù)的個(gè)數(shù)大于或等于5,那么該事務(wù)將睡眠commit_delay指定的時(shí)間。如果數(shù)據(jù)庫
中正在執(zhí)行的事務(wù) 的個(gè)數(shù)小于5,這個(gè)事務(wù)將直接提交。默認(rèn)值是5。
10.5 檢查點(diǎn)
checkpoint_segments (integer)
這個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置。默認(rèn)值是3。它影響系統(tǒng)何時(shí)啟動(dòng)一個(gè)檢查點(diǎn)操作。如果上次檢查點(diǎn)操作結(jié)束以后,
系統(tǒng)產(chǎn)生的事 務(wù)日志文件的個(gè)數(shù)超過checkpoint_segments的值,系統(tǒng)就會(huì)自動(dòng)啟動(dòng)一個(gè)檢查點(diǎn)操作。增大這個(gè)參數(shù)會(huì)增加數(shù)據(jù)庫崩
潰以后恢復(fù)操作需要的時(shí) 間。
checkpoint_timeout (integer)
這個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置。單位是秒,默認(rèn)值是300。它影響系統(tǒng)何時(shí)啟動(dòng)一個(gè)檢查點(diǎn)操作。如果現(xiàn)在的時(shí)間減
去上次檢查 點(diǎn)操作結(jié)束的時(shí)間超過了checkpoint_timeout的值,系統(tǒng)就會(huì)自動(dòng)啟動(dòng)一個(gè)檢查點(diǎn)操作。增大這個(gè)參數(shù)會(huì)增加數(shù)據(jù)庫崩
潰以后恢復(fù)操作需要的時(shí) 間。
checkpoint_completion_target (floating point)
這個(gè)參數(shù)控制檢查點(diǎn)操作的執(zhí)行時(shí)間。合法的取值在0到1之間,默認(rèn)值是0.5。不要輕易地改變這個(gè)參數(shù)的值,使用默認(rèn)值即可。 這
個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置。
10.6 歸檔模式
archive_mode (boolean)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。默認(rèn)值是off。它決定數(shù)據(jù)庫是否打開歸檔模式。
archive_dir (string)
這個(gè)參數(shù)只有在啟動(dòng)數(shù)據(jù)庫時(shí),才能被設(shè)置。默認(rèn)值是空串。它設(shè)定存放歸檔事務(wù)日志文件的目錄。
archive_timeout (integer)
這個(gè)參數(shù)只能在postgresql.conf文件中被設(shè)置。默認(rèn)值是0。單位是秒。如果archive_timeout的值不是0,而且當(dāng)前時(shí)間減去數(shù) 據(jù)
庫上次進(jìn)行事務(wù)日志文件切換的時(shí)間大于archive_timeout的值,數(shù)據(jù)庫將進(jìn)行一次事務(wù)日志文件切換。一般情況下,數(shù)據(jù)庫只有在
一個(gè)事務(wù)日志 文件寫滿以后,才會(huì)切換到下一個(gè)事務(wù)日志文件,設(shè)定這個(gè)參數(shù)可以讓數(shù)據(jù)庫在一個(gè)事務(wù)日志文件尚未寫滿的情況下
切換到下一個(gè)事務(wù)日志文件。
10.7 優(yōu)化器參數(shù)
10.7.1 存取方法參數(shù)
下列參數(shù)控制查詢優(yōu)化器是否使用特定的存取方法。除非對優(yōu)化器特別了解,一般情況下,使用它們默認(rèn)值即可。
enable_bitmapscan (boolean)
打開或者關(guān)閉bitmap-scan 。默認(rèn)值是 on。
enable_hashagg (boolean)
打開或者關(guān)閉hashed aggregation。默認(rèn)值是 on。
enable_hashjoin (boolean)
打開或者關(guān)閉hash-join。默認(rèn)值是 on。
enable_indexscan (boolean)
打開或者關(guān)閉index-scan。默認(rèn)值是 on。
enable_mergejoin (boolean)
打開或者關(guān)閉merge-join。默認(rèn)值是 on。
enable_nestloop (boolean)
打開或者關(guān)閉nested-loop join。默認(rèn)值是 on。不可能完全不使用nested-loop join,關(guān)閉這個(gè)參數(shù)會(huì)讓系統(tǒng)在有其它存取方法可
用的情況下,不使用nested-loop join。
enable_seqscan (boolean)
打開或者關(guān)閉sequential scan。默認(rèn)值是 on。不可能完全不使用sequential scan,關(guān)閉這個(gè)參數(shù)會(huì)讓系統(tǒng)在有其它存取方法可用
的情況下,不使用sequential scan。
關(guān)于數(shù)據(jù)庫中的參數(shù)值的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
新聞名稱:探究數(shù)據(jù)庫參數(shù)值的設(shè)置和管理方法(數(shù)據(jù)庫中的參數(shù)值)
標(biāo)題路徑:http://m.fisionsoft.com.cn/article/cccpsdh.html


咨詢
建站咨詢
