GaussDB T相關(guān)參數(shù)的意義與調(diào)整
調(diào)整一:GS-00104:Session stack overflow
錯(cuò)誤原因:執(zhí)行INSERT、SELECT或UPDATE等命令時(shí),會(huì)占用線程數(shù)據(jù)棧用于消息緩存,該線程數(shù)據(jù)棧的大小受_AGENT_STACK_SIZE參數(shù)控制,
當(dāng)VALUE中的字段值大小超過_AGENT_STACK_SIZE取值時(shí),上報(bào)此錯(cuò)誤。
解決辦法:請(qǐng)按照如下方法估算一次參數(shù)可處理的數(shù)據(jù)量:
_AGENT_STACK_SIZE = 每個(gè)字段值大小 × 參數(shù)個(gè)數(shù) + 兩次push行數(shù)據(jù) + 類型轉(zhuǎn)換
說明:
單行數(shù)據(jù)最大為64000字節(jié),類型轉(zhuǎn)換共需要1600字節(jié)。_AGENT_STACK_SIZE參數(shù)詳情請(qǐng)參見8.1.5.4 線程處理。
根據(jù)估算結(jié)果,分批次處理適量數(shù)據(jù)。
2 )執(zhí)行如下命令調(diào)整_AGENT_STACK_SIZE參數(shù)取值,并重啟數(shù)據(jù)庫(kù)使其生效:
ALTER SYSTEM SET _AGENT_STACK_SIZE = value;
調(diào)整二:CBO (Cost-Based-Optimize)
參數(shù)描述: 成本優(yōu)化器開關(guān)。 ON開啟,OFF關(guān)閉。
當(dāng)CBO為ON時(shí),并且表有統(tǒng)計(jì)信息時(shí),SQL會(huì)根據(jù)CBO的規(guī)則生成執(zhí)行計(jì)劃,否則根據(jù)RBO的規(guī)則生成執(zhí)行計(jì)劃。
當(dāng)CBO開關(guān)發(fā)生切換時(shí),SQL-POOL中所有緩存的執(zhí)行計(jì)劃全部失效。
取值范圍:
ON:開啟
OFF:關(guān)閉
默認(rèn)值: OFF
調(diào)整三:UNDO_RETENTION_TIME
參數(shù)描述:UNDO的保留時(shí)間,保留時(shí)間設(shè)置過短會(huì)導(dǎo)致查詢出現(xiàn)“快照太舊”錯(cuò)誤。
取值范圍:整數(shù),(0,2^32-1]。單位:秒。
默認(rèn)值:100
調(diào)整四:線程參數(shù)調(diào)整
1)_THREAD_STACK_SIZE
參數(shù)描述:設(shè)置線程棧的大小。
取值范圍:正整數(shù),[256K,7.5M],單位為字節(jié)。
默認(rèn)值:512K
2)_AGENT_STACK_SIZE
參數(shù)描述:設(shè)置線程數(shù)據(jù)棧的大小,線程數(shù)據(jù)棧用于消息緩存,可緩存的最長(zhǎng)消息為該值的1/2。
取值范圍:正整數(shù),[512k,4G),單位為字節(jié)。
默認(rèn)值:1MB
3)_LOB_MAX_EXEC_SIZE
參數(shù)描述:設(shè)置lob操作長(zhǎng)度大小。
l 用于支持LOB類型進(jìn)行表達(dá)式運(yùn)算(字符處理函數(shù)、LIKE、排序等),內(nèi)存從線程數(shù)據(jù)棧上申請(qǐng)。 配置大小不能超過_AGENT_STACK_SIZE。
取值范圍:正整數(shù),[0,4G),單位為字節(jié)。
默認(rèn)值:65534字節(jié)
4)OPTIMIZED_WORKER_THREADS
參數(shù)描述:設(shè)置最優(yōu)工作線程個(gè)數(shù)。
l 當(dāng)會(huì)話數(shù)超過該參數(shù)設(shè)置值,會(huì)切換成會(huì)話和線程分離的模式,否則為綁定模式。
l OPTIMIZED_WORKER_THREADS可設(shè)置為小于或等于MAX_WORKER_THREADS的任意數(shù),重啟數(shù)據(jù)庫(kù)服務(wù)器后MAX_WORKER_THREADS值不變。
l 設(shè)置OPTIMIZED_WORKER_THREADS大于現(xiàn)有MAX_WORKER_THREADS時(shí)須同時(shí)手動(dòng)設(shè)置MAX_WORKER_THREADS參數(shù)值。
l 最大值不建議超過SESSIONS的配置值,否則會(huì)造成線程資源浪費(fèi)。
l 當(dāng)該值設(shè)置過大時(shí),會(huì)占用更多的CPU和線程資源,在資源不足的情況下可能會(huì)導(dǎo)致數(shù)據(jù)庫(kù)異常。
l 每個(gè)線程占用內(nèi)存0.5M+。
l 由于安全函數(shù)有傳入內(nèi)存2G的限制,設(shè)置該線程數(shù)上限為10000。
取值范圍:正整數(shù),[2,10000]。
默認(rèn)值:100
調(diào)整五:會(huì)話級(jí)調(diào)整參數(shù)
1)_SPIN_COUNT
參數(shù)描述:SPIN LOCK獲取的等待次數(shù),屬于內(nèi)部的高級(jí)參數(shù),在業(yè)務(wù)并發(fā)沖突率較高的應(yīng)用場(chǎng)景情況下,提高等待次數(shù),有利于減少并發(fā)事務(wù)失敗的概率。
取值范圍:整數(shù),[0,2^32-1]。
默認(rèn)值:1000
2)_INDEX_BUFFER_SIZE
參數(shù)描述:設(shè)置單個(gè)session上的索引緩沖區(qū)大小,調(diào)大有利于減少索引在磁盤的讀取次數(shù)。
索引緩沖區(qū)緩存page數(shù)量 = _INDEX_BUFFER_SIZE / PAGE_SIZE。
取值范圍:正整數(shù),[16K,32T] ,單位為字節(jié)。
默認(rèn)值:8M
3)_PRIVATE_KEY_LOCKS
參數(shù)描述:每個(gè)session最多保留的key鎖數(shù)量。
事務(wù)結(jié)束時(shí),session最多保留_PRIVATE_KEY_LOCKS個(gè)key鎖,并將剩下的鎖釋放并還給全局鎖區(qū),以備該session執(zhí)行新的事務(wù)時(shí)復(fù)用。
取值范圍:整數(shù),[8,128]。
默認(rèn)值:8
4)_PRIVATE_ROW_LOCKS
參數(shù)描述:每個(gè)session最多保留的行鎖數(shù)量。事務(wù)結(jié)束時(shí),session最多保留_PRIVATE_ROW_LOCKS個(gè)行鎖,并將剩下的鎖釋放并還給全局鎖區(qū),以備該session執(zhí)行新的事務(wù)時(shí)復(fù)用。
取值范圍:整數(shù),[8,128]。默認(rèn)值:8
5)MERGE_SORT_BATCH_SIZE
參數(shù)描述:merge join算法中,每批次參與sort join的記錄數(shù)。
取值范圍:正整數(shù),[100000,2^32-1]
默認(rèn)值: 100000
6)LONGSQL_TIMEOUT
參數(shù)描述:慢查詢的時(shí)間閾值,僅當(dāng)慢查詢?nèi)罩敬蜷_時(shí)有效。DML語句執(zhí)行時(shí)間超過此配置項(xiàng),將被記錄到慢查詢?nèi)罩局小?/p>
取值范圍:整數(shù),單位可支持毫秒、秒。
單位為秒時(shí),取值范圍是[0s,2^32-1s]。
單位缺省時(shí)默認(rèn)為秒,取值范圍是[0,2^32-1] 。
單位為毫秒時(shí),取值范圍是[0s,2^32-1s] ,即[0ms,(2^32-1)*1000ms]。
默認(rèn)值:10
7)INTERACTIVE_TIMEOUT
參數(shù)描述:ZSQL連接會(huì)話的超時(shí)時(shí)長(zhǎng)。當(dāng)一個(gè)ZSQL會(huì)話在超時(shí)時(shí)長(zhǎng)內(nèi)沒有任何操作時(shí),該會(huì)話將被關(guān)閉。
取值范圍:正整數(shù),[1,2^32-1] ,單位:秒。
默認(rèn)值:1800
8)UPPER_CASE_TABLE_NAMES
參數(shù)描述:只讀參數(shù),是否將對(duì)象名稱轉(zhuǎn)為大寫。
對(duì)象名包括:表名、列名、視圖名、存儲(chǔ)過程名、自定義函數(shù)名、觸發(fā)器名、表空間名、索引名、約束名。
取值范圍:
TRUE:轉(zhuǎn)為大寫,此時(shí)SQL語句大小寫不敏感。
FALSE:不轉(zhuǎn)為大寫,此時(shí)SQL語句大小寫敏感。
默認(rèn)值:TRUE
9)MAX_ALLOWED_PACKET
參數(shù)描述:通信允許的最大報(bào)文大小
取值范圍:[96K,64M],單位為字節(jié)。
默認(rèn)值:64M
調(diào)整六:軟解析
1)_DISABLE_SOFT_PARSE
參數(shù)描述:是否禁用軟解析功能。
取值范圍:
l TRUE:禁用軟解析功能。禁用情況下8.2.4.52 DV_SQLS視圖功能不可用。
l FALSE:?jiǎn)⒂密浗馕龉δ堋⒂们闆r下會(huì)緩存SQL的解析樹,以提速相同SQL語句執(zhí)行速度,同時(shí)支持8.2.4.52 DV_SQLS視圖功能。
默認(rèn)值:FALSE
2)_HINT_FORCE
參數(shù)描述:是否打開強(qiáng)制優(yōu)化開關(guān)。
取值范圍:整型。
0:禁用所有強(qiáng)制優(yōu)化功能。
1:?jiǎn)⒂胦rdered強(qiáng)制優(yōu)化。
2:?jiǎn)⒂胣ested loop強(qiáng)制優(yōu)化。
4:?jiǎn)⒂胢erge強(qiáng)制優(yōu)化。
8:?jiǎn)⒂胔ash強(qiáng)制優(yōu)化。
如果需要同時(shí)啟用以上多種強(qiáng)制優(yōu)化,則配置為多項(xiàng)之和。比如同時(shí)啟用ordered和
hash,則配置為9。
默認(rèn)值:0
調(diào)整七:實(shí)例級(jí)其他參數(shù)
UNDO_RETENTION_TIME
參數(shù)描述:UNDO的保留時(shí)間,保留時(shí)間設(shè)置過短會(huì)導(dǎo)致查詢出現(xiàn)“快照太舊”錯(cuò)誤。
取值范圍:整數(shù),(0,2^32-1]。單位:秒。
默認(rèn)值:100
FILE_OPTIONS
參數(shù)描述:在支持的平臺(tái)上,支持文件系統(tǒng)開啟或關(guān)閉Direct I/O或異步I/O功能,以及設(shè)置文件的打開方式。該參數(shù)別名為FILESYSTEMIO_OPTIONS。
取值范圍:
l NONE:禁用Direct I/O和異步I/O,并以O(shè)_SYNC方式打開redo文件。
l DIRECTIO:redo文件啟用Direct I/O,并以O(shè)_SYNC方式打開redo文件。
l FULLDIRECTIO:所有文件啟動(dòng)DIRECT I/O,并以O(shè)_SYNC方式打開redo文件。
l ASYNCH:?jiǎn)⒂卯惒絀/O,并以O(shè)_DSYNC方式打開redo文件。如果參數(shù)值配置為ASYNCH,必須保證系統(tǒng)安裝了libaio庫(kù)。
l DSYNC:以O(shè)_DSYNC方式打開DATAFILE文件,并以O(shè)_DSYNC方式打開redo文件。
l FDATASYNC:以默認(rèn)方式打開DATAFILE文件,即二進(jìn)制和讀寫方式,并以O(shè)_DSYNC方式打開redo文件。
l SETALL:?jiǎn)⒂肈irect I/O和異步I/O,并以O(shè)_DSYNC方式打開redo文件。
默認(rèn)值:NONE
INSTANCE_NAME
參數(shù)描述:實(shí)例名稱。
取值范圍:字符串。
默認(rèn)值:zenith
4)BUF_POOL_NUM
參數(shù)描述:設(shè)置data buffer的分區(qū)數(shù)。
取值范圍:正整數(shù)[1, 128]
默認(rèn)值:1
CR_MODE
參數(shù)描述:表/索引的MVCC機(jī)制。
取值范圍:
l ROW:采用行級(jí)MVCC。
l PAGE:采用頁級(jí)MVCC。
默認(rèn)值:PAGE
調(diào)整八:流控開關(guān)
_ENABLE_QOS
參數(shù)描述:是否打開流控開關(guān)。在并發(fā)性能要求較高的場(chǎng)景下,打開流控開關(guān),可以讓數(shù)據(jù)庫(kù)達(dá)到最優(yōu)性能。
取值范圍:
TRUE:打開流控開關(guān)。
FALSE:關(guān)閉流控開關(guān)。
默認(rèn)值:FALSE
_QOS_CTRL_FACTOR
參數(shù)描述:設(shè)置單個(gè)CPU的并發(fā)線程最大個(gè)數(shù),當(dāng)并發(fā)線程數(shù)達(dá)到最大個(gè)數(shù)時(shí),之后的線程會(huì)進(jìn)入睡眠模式,排隊(duì)等待進(jìn)入激活模式。
并發(fā)線程的最大個(gè)數(shù)=FACTOR*CPU核數(shù)。此參數(shù)只在流控開關(guān)打開時(shí)有效。
取值范圍:浮點(diǎn)型,(0,5]。
默認(rèn)值:0.75
調(diào)整九: 日志目錄
LOG_HOME
參數(shù)描述:日志的根目錄。
更改日志根目錄時(shí),RUN日志(即運(yùn)行日志)、DEBUG日志(即調(diào)試日志)、AUDIT日志(即審計(jì)日志)、LONGSQL日志(即慢查詢?nèi)罩荆┑哪夸浺搽S之改變。例如,
LOG_HOME = /home/omm/data/log
,則RUN日志的目錄為/home/omm/data/log/run
,DEBUG日志的目錄為/home/omm/data/log/debug
,AUDIT日志的目錄為/home/omm/data/log/audit
,LONGSQL日志的目錄為/home/omm/data/log/longsql。
但是,ALARM日志(即告警日志)有單獨(dú)的日志目錄(ALARM_LOG_DIR),不受日志根目錄影響。
取值范圍:字符串。最大長(zhǎng)度163。
默認(rèn)值:$GAUSSLOG/db_log
調(diào)整10:事務(wù)
1)DB_ISOLEVEL
參數(shù)描述:設(shè)置事務(wù)的隔離級(jí)別,保證不讀臟數(shù)據(jù)。
取值范圍:
l RC:Read Committed,一個(gè)sql語句內(nèi)讀取到的數(shù)據(jù),是同一個(gè)版本的快照數(shù)據(jù)。
l CC:Current Committed,一個(gè)sql語句內(nèi)讀取到的數(shù)據(jù),每一行都是讀取時(shí)刻的最新已提交數(shù)據(jù),所有讀取出來的數(shù)據(jù)不再是一個(gè)快照數(shù)據(jù)。
默認(rèn)值: RC
2)COMMIT_MODE
參數(shù)描述:COMMIT_MODE是一個(gè)高級(jí)參數(shù),用于設(shè)置日志寫入磁盤的方式,包括立即處理、批量處理兩種。
取值范圍:
l IMMEDIATE:立即處理。對(duì)事務(wù)不進(jìn)行緩存,接收到后立即寫入磁盤。此方式可以減少事務(wù)的吞吐量。
l BATCH:先緩存,再批量處理。先緩存事務(wù)的redo到Log Buffer中,達(dá)到一定量后再批量寫入磁盤。
默認(rèn)值:IMMEDIATE
3)COMMIT_WAIT_LOGGING
參數(shù)描述:進(jìn)行事務(wù)操作時(shí),是否等待相關(guān)redo日志寫入磁盤。
取值范圍:
l WAIT:待相關(guān)redo日志寫入磁盤后,再進(jìn)行事務(wù)操作。
l NOWAIT:無需等待相關(guān)redo日志寫入磁盤,即可進(jìn)行事務(wù)操作。
默認(rèn)值:WAIT
4)LOCK_WAIT_TIMEOUT
參數(shù)描述:設(shè)置事務(wù)等待的閾值,等待時(shí)間超過該閾值則報(bào)錯(cuò)。
取值范圍:整數(shù),[0,2^32-1],單位:毫秒。
默認(rèn)值: 0,表示無限等待。
5)_UNDO_SEGMENTS
參數(shù)描述:undo段數(shù)量,其決定并發(fā)能力以及總事務(wù)的數(shù)量。
該參數(shù)只能在新建數(shù)據(jù)庫(kù)時(shí)設(shè)置,其他情況請(qǐng)勿修改。
啟動(dòng)數(shù)據(jù)庫(kù)后該參數(shù)為只讀,如需修改參數(shù),需停止數(shù)據(jù)庫(kù)后修改配置文件,重新建
庫(kù)后生效。
取值范圍:整型,(1,1024]。
默認(rèn)值:32
本文轉(zhuǎn)自“墨天輪”社區(qū)GaussDB頻道
數(shù)據(jù)庫(kù) GaussDB
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實(shí)的內(nèi)容,請(qǐng)聯(lián)系我們jiasou666@gmail.com 處理,核實(shí)后本網(wǎng)站將在24小時(shí)內(nèi)刪除侵權(quán)內(nèi)容。