新聞中心
DB2是一種關(guān)系型數(shù)據(jù)庫系統(tǒng),被廣泛用于企業(yè)級(jí)應(yīng)用程序的開發(fā)和管理。在DB2中,每個(gè)數(shù)據(jù)庫都有一個(gè)創(chuàng)建時(shí)間的屬性,它表示該數(shù)據(jù)庫的創(chuàng)建日期和時(shí)間。在本文中,我們將探討。

我們注重客戶提出的每個(gè)要求,我們充分考慮每一個(gè)細(xì)節(jié),我們積極的做好成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)服務(wù),我們努力開拓更好的視野,通過不懈的努力,創(chuàng)新互聯(lián)贏得了業(yè)內(nèi)的良好聲譽(yù),這一切,也不斷的激勵(lì)著我們更好的服務(wù)客戶。 主要業(yè)務(wù):網(wǎng)站建設(shè),網(wǎng)站制作,網(wǎng)站設(shè)計(jì),微信小程序,網(wǎng)站開發(fā),技術(shù)開發(fā)實(shí)力,DIV+CSS,PHP及ASP,ASP.Net,SQL數(shù)據(jù)庫的技術(shù)開發(fā)工程師。
一、查詢DB2數(shù)據(jù)庫的創(chuàng)建時(shí)間
查詢DB2數(shù)據(jù)庫的創(chuàng)建時(shí)間非常簡(jiǎn)單。您只需要執(zhí)行以下命令:
SELECT CREATOR,NAME,TYPE,CATNAME,CREATE_TIME FROM SYSIBM.SYSDATABASE;
這個(gè)命令將返回一個(gè)結(jié)果集,其中包含DB2中所有數(shù)據(jù)庫的創(chuàng)建時(shí)間。請(qǐng)注意,這個(gè)命令只能在DB2的控制臺(tái)或命令行中執(zhí)行,而不能在SQL編輯器或應(yīng)用程序中執(zhí)行。
除了查詢所有數(shù)據(jù)庫的創(chuàng)建時(shí)間,您還可以使用以下命令查詢特定數(shù)據(jù)庫的創(chuàng)建時(shí)間:
SELECT CREATE_TIME FROM SYSIBM.SYSDATABASE WHERE NAME=’your_database_name’;
這個(gè)命令只會(huì)返回一個(gè)結(jié)果集,其中包含了指定數(shù)據(jù)庫的創(chuàng)建時(shí)間。請(qǐng)注意,您需要將“your_database_name”替換為您要查詢的數(shù)據(jù)庫的名稱。
二、修改DB2數(shù)據(jù)庫的創(chuàng)建時(shí)間
在DB2中,您無法直接修改數(shù)據(jù)庫的創(chuàng)建時(shí)間。DB2將數(shù)據(jù)庫的創(chuàng)建時(shí)間作為只讀屬性,并不允許用戶更改它。但是,您可以通過修改數(shù)據(jù)庫的最后修改時(shí)間來模擬修改數(shù)據(jù)庫的創(chuàng)建時(shí)間。
要修改DB2數(shù)據(jù)庫的最后修改時(shí)間,您可以執(zhí)行以下命令:
UPDATE SYSIBM.SYSDATABASE SET ALTER_TIME=’your_new_time’ WHERE NAME=’your_database_name’;
這個(gè)命令將使DB2將指定數(shù)據(jù)庫的ALTER_TIME屬性設(shè)置為“your_new_time”。請(qǐng)注意,您需要將“your_database_name”替換為要修改的數(shù)據(jù)庫的名稱,并將“your_new_time”替換為新的修改時(shí)間。
在修改數(shù)據(jù)庫的最后修改時(shí)間之后,您可以使用以下命令將數(shù)據(jù)庫的創(chuàng)建時(shí)間設(shè)置為最后修改時(shí)間,從而模擬更改數(shù)據(jù)庫的創(chuàng)建時(shí)間:
UPDATE SYSIBM.SYSDATABASE SET CREATE_TIME=ALTER_TIME WHERE NAME=’your_database_name’;
這個(gè)命令將使DB2將指定數(shù)據(jù)庫的CREATE_TIME屬性設(shè)置為ALTER_TIME屬性。請(qǐng)注意,您需要將“your_database_name”替換為要修改的數(shù)據(jù)庫的名稱。
在本文中,我們學(xué)習(xí)了。雖然DB2將數(shù)據(jù)庫的創(chuàng)建時(shí)間作為只讀屬性,但是通過修改數(shù)據(jù)庫的最后修改時(shí)間,我們可以模擬更改數(shù)據(jù)庫的創(chuàng)建時(shí)間。請(qǐng)注意,修改數(shù)據(jù)庫的最后修改時(shí)間可能影響DB2系統(tǒng)的其他功能,因此在執(zhí)行此類操作之前,請(qǐng)進(jìn)行仔細(xì)的評(píng)估和測(cè)試。
相關(guān)問題拓展閱讀:
- DB2 刪除表后如何釋放相應(yīng)磁盤空間
DB2 刪除表后如何釋放相應(yīng)磁盤空間
DB2 低一悶好些的版本沒有像SQLSERVER的Shrinkfile或者Oracle的Resize功能。
假如你的DB2是V9.1以上的話可以直接用ALTER TABLESPACE RESIZE收縮表空間,此命令執(zhí)行時(shí)它會(huì)自動(dòng)將表進(jìn)行DELETE、RECREATE、IMPORT、EXPORT、REORG或者LOAD等,否則你可以用下面的方法來收縮你的表空間。
1、導(dǎo)出所有表結(jié)構(gòu)和數(shù)據(jù),然后將表虧野重新建立,然后再導(dǎo)入數(shù)據(jù)
2、通過命令 db2dart database-name /LHWM /TSI tablespace-id /NP 0,運(yùn)行此命令后DB2會(huì)生成一個(gè)文件,文件會(huì)有一些建議銷罩喊,告訴你怎么做EXPORT、IMPORT、REORG、LOAD,你按它的步驟一步一步去做,做完之后空間就會(huì)自動(dòng)釋放,然后再用ALTER TABLESPACE的RESIZE功能來收縮表空間。
謝謝!
#說明:由csdn下載,原版為doc格式,有對(duì)應(yīng)的xml表,不過還是應(yīng)該對(duì)每個(gè)服務(wù)的數(shù)據(jù)庫單獨(dú)考慮需要的檢查表格。
DB2維護(hù)手冊(cè)
目錄
DB2維護(hù)手冊(cè) 1
一、 DB2日常維護(hù)日操作 3
1、 檢查管理服務(wù)器是否啟動(dòng) 3
2、 檢查DB2實(shí)例是否已經(jīng)啟動(dòng) 3
3、 查看表空間狀態(tài)是否正常 3
4、 查看表的狀態(tài) 4
5、 查看磁盤空間 4
6、 檢查存儲(chǔ)管理軟件是否正常 4
7、 檢查數(shù)據(jù)庫備份是否正常 5
8、 檢查歸檔日志是否正確歸檔了 5
9、 查看緩沖池的命中率 5
10、 查看當(dāng)前運(yùn)行最頻繁的SQL,其命中率是否正常 5
11、 查看當(dāng)前連接的應(yīng)用程序,有沒有非法連接 5
12、 檢查有沒有死鎖 6
13、 對(duì)表和索引進(jìn)行RUNSTATS 6
14、 檢查表是否需要重組 6
15、 對(duì)需要重組的表進(jìn)行重組 7
二、 DB2日常維護(hù)月操作 7
1、 查看DB2日志 7
2、 檢查備份和日志是否都保存好了 7
三、 DB2日常維護(hù)季度操作 7
1、 通過快照仿扮監(jiān)控器,查看系統(tǒng)性能如何 7
2、 數(shù)據(jù)庫補(bǔ)丁級(jí)別 8
四、 注意事項(xiàng) 8
1、 不要?jiǎng)h除活動(dòng)日志文件 8
2、 注意交易日志存儲(chǔ)空間 8
3、 按照系統(tǒng)的實(shí)際工作量配置日志空間 8
4、 設(shè)置正確數(shù)據(jù)庫代碼頁 9
5、 檢查許可證(LICENSE)安裝情況 9
6、 創(chuàng)建數(shù)據(jù)庫前調(diào)整好系統(tǒng)時(shí)間 9
7、 不要隨便執(zhí)行 CHOWN (CHMOD) –R (UNIX/LINUX) 9
8、 在歸檔日志模式下使用LOAD記得加NONRECOVERABLE參數(shù) 9
五、 附:以脫機(jī)方式重組表 9
六、 附:索引重組 10
七、 附:收集和更新統(tǒng)計(jì)信息的準(zhǔn)則 11
八、 附:使用 CLP 捕獲數(shù)據(jù)庫運(yùn)行狀況快照 13
一、 DB2日常維護(hù)日操作
1、 檢查管理服務(wù)器是否啟動(dòng)
用ps命令查看是否有dasusr1后臺(tái)進(jìn)程
#ps -ef | dasusr1
請(qǐng)確保管理服務(wù)器已經(jīng)啟動(dòng),如果沒有啟動(dòng),則按以下步驟啟動(dòng)管理服務(wù)器:
? 以管理服務(wù)器用戶(UNIX默認(rèn)是DASUSR1)登錄
? 發(fā)出db2admin start命令
? 如果是HA環(huán)境,則要保證在腳本中正確配置了啟動(dòng)命令
2、 檢查DB2實(shí)例是否已經(jīng)啟動(dòng)
用ps命令查看是否有db2sysc后臺(tái)進(jìn)程
#ps -ef | db2sysc
也可以以DB2實(shí)例所有者登錄,通過發(fā)出db2start命令來確保啟動(dòng)了實(shí)例(如果實(shí)例已經(jīng)啟動(dòng),則會(huì)告知SQL1026N 數(shù)據(jù)庫管理器已激活;否則,將把實(shí)例啟動(dòng)起來)
3、 查看表空間狀態(tài)是否正常
以db2實(shí)例所有者登錄
#db2 list tablespaces show detail//在單分區(qū)上查看表空間的狀態(tài),正常返回0x0000
# db2_all list tablespaces show detail //在所有分區(qū)上查看表空間的狀態(tài)
可以使用LIST TABLESPACES 命令確定連接數(shù)據(jù)庫中表空間的當(dāng)前狀態(tài),可以使用SHOW DETAIL選項(xiàng)查看表空間的詳細(xì)信息。比如,我們連上SAMPLE數(shù)據(jù)庫,執(zhí)行l(wèi)ist tablespaces show detail ,可以看到狀態(tài)返回值是0x0000,此時(shí),使用db2tbst可以查看狀態(tài)編號(hào)對(duì)于的狀態(tài)含義,具體語法如下:
db2tbst 可以查看編號(hào)所代表茄攔的狀態(tài)
db2tbst 命令接收十六進(jìn)制的狀態(tài)值,并返回相應(yīng)的表空間狀態(tài)。例如,命令 db2tbst 0x0008 返回 State = Load Pending 。而該十六進(jìn)制的狀態(tài)值反過來又是 LIST TABLESPACES 命令顫大胡輸出的組成部分。表空間的外部可見狀態(tài)是由單個(gè)狀態(tài)值的十六進(jìn)制總和構(gòu)成的。例如,如果表空間的狀態(tài)是 Backup Pending和 Load in Progress,那么所返回的十六進(jìn)制值就是 0x20230(0x00020 + 0x20230)
4、 查看表的狀態(tài)
查詢系統(tǒng)目錄視圖以獲得關(guān)于數(shù)據(jù)庫的有用信息。例如,下面的語句使用 NOT LIKE 斷言,返回在 SYSCAT.TABLES 中有項(xiàng)的所有用戶定義的表的名稱,以及每個(gè)表的列數(shù)和表的狀態(tài)(N = 正常;C = 待審核(check pending))
#db2 select tabname, colcount, status FROM syscat.tables WHERE tabschema NOT LIKE ‘SYS%’ ORDER BY tabname
也可以使用load query命令查看單個(gè)表的狀態(tài),比如對(duì)表TEST1,我們可以發(fā)出如下命令:
#db2 load query table test1
5、 查看磁盤空間
查看數(shù)據(jù)庫活動(dòng)日志目錄是否已滿,活動(dòng)日志目錄可以使用get db cfg查看,注意一定不要手工刪除活動(dòng)日志
#df -k
查看S表空間對(duì)應(yīng)的容器目錄空間是否滿了
#df -k
查看DMS表空間中是否還有可用頁
#db2 list tablespaces show detail//在單分區(qū)上查看表空間的是否還有可用頁
# db2_all list tablespaces show detail //在所有分區(qū)上查看表空間是否還有可用頁
6、 檢查存儲(chǔ)管理軟件是否正常
請(qǐng)檢查T或其他存儲(chǔ)管理軟件是否正常,以及磁帶機(jī)是否運(yùn)行正常。
7、 檢查數(shù)據(jù)庫備份是否正常
請(qǐng)查看T或第三方存儲(chǔ)管理軟件,看備份映像文件是否完整的保存到了磁帶機(jī)上了,想在DB2上查看備份情況,可以使用LIST命令
# db2 list history backup all for 數(shù)據(jù)庫名
8、 檢查歸檔日志是否正確歸檔了
請(qǐng)確?;顒?dòng)日志目錄下沒有的日志文件都已經(jīng)正確歸檔到了帶機(jī)上(查看T或第三方存儲(chǔ)管理軟件)。
查看活動(dòng)目錄里的日志文件:
#ls -l
9、 查看緩沖池的命中率
# db2 get snapshot for bufferpools on 數(shù)據(jù)庫名
查看緩沖池的命中率,看其是否低于95%(命中率越高越好)
10、 查看當(dāng)前運(yùn)行最頻繁的SQL,其命中率是否正常
# db2 get snapshot for bufferpools on 數(shù)據(jù)庫名 > log.txt
用grep命令查看” Number of executions”執(zhí)行次數(shù)最頻繁的語句,看其命中率是否正常。
比如:
grep -n ” Number of executions” snap.out | grep -v “= 0” | sort -k 5,5rn | more
11、 查看當(dāng)前連接的應(yīng)用程序,有沒有非法連接
#db2 list applications show detail
看這些連接的情況,看有沒有不合適的IP連上來,或者不被允許的第三方工具連上來,比如一些第三方工具連上來會(huì)對(duì)表進(jìn)行鎖定,影響業(yè)務(wù)系統(tǒng)正常運(yùn)行,這個(gè)時(shí)候可以用FORCE APPLICATIONS (應(yīng)用程序句柄)停下來。
12、 檢查有沒有死鎖
# db2 get snapshot for all on 數(shù)據(jù)庫名 > log.txt
用grep命令查看輸出的文件中是否有死鎖的記錄,比如
grep -n “Deadlocks detected” log.txt | grep -v “= 0” | more
13、 對(duì)表和索引進(jìn)行runstats
#db2 runstats on table 表名 and index all
對(duì)系統(tǒng)表以及變化比較頻繁的表運(yùn)行統(tǒng)計(jì)信息,建議寫成shell腳本自動(dòng)運(yùn)行。
14、 檢查表是否需要重組
使用REORGCHK命令,通過統(tǒng)計(jì)數(shù)據(jù)檢查表是否需要重組,語法如下:
REORGCHK STATISTICS ON
CURRENT STATISTICS:根據(jù)當(dāng)前表統(tǒng)計(jì)數(shù)據(jù)判斷是否需要重組表
TABLE table_name : 對(duì)單個(gè)表進(jìn)行分析
TABLE ALL: 對(duì)數(shù)據(jù)庫所有的表進(jìn)行分析
TABLE SYSTEM: 對(duì)系統(tǒng)表進(jìn)行分析
TABLE USER : 對(duì)當(dāng)前用戶模式下的所有表進(jìn)行分析
#db2 reorgchk update statistics on table all
15、 對(duì)需要重組的表進(jìn)行重組
#db2 reorg table 表名//通過重構(gòu)行來消除“碎片”數(shù)據(jù)
#db2 reorg indexes all for table 表名 //只重組索引
比如:
reorg table db2inst1.org index by_id
將根據(jù)索引by_id,如果不加INDEX選項(xiàng)將重組表和所有的索引
reorg table db2inst1.org index by_id use tempspace1
使用指定的臨時(shí)表空間重組表
表重組完成后需要進(jìn)行RUNSTATS。另外,記住在分區(qū)數(shù)據(jù)庫環(huán)境中,如果想在所有節(jié)點(diǎn)運(yùn)行命令,需要使用db2_all命令。
二、 DB2日常維護(hù)月操作
1、 查看DB2日志
請(qǐng)至少每月查看一次db2diag.log文件,看其中是否有異常。
2、 檢查備份和日志是否都保存好了
通過T或第三方存儲(chǔ)管理軟件,查看備份和歸檔日志是否都保存好了,在數(shù)據(jù)庫級(jí)別查看備份,可以使用:
# db2 list history backup all for 數(shù)據(jù)庫名
三、 DB2日常維護(hù)季度操作
1、 通過快照監(jiān)控器,查看系統(tǒng)性能如何
通過快照監(jiān)控器,抓取數(shù)據(jù)庫的信息,分析數(shù)據(jù)庫性能是否合理:
# db2 get snapshot for all on 數(shù)據(jù)庫名 > log.txt
2、 數(shù)據(jù)庫補(bǔ)丁級(jí)別
# db2level
四、 注意事項(xiàng)
1、 不要?jiǎng)h除活動(dòng)日志文件
DB2 的活動(dòng)日志文件不能被刪除。一旦 DB2 的活動(dòng)日志文件被刪除,或者所在的存儲(chǔ)設(shè)備出現(xiàn)問題,則不可避免地造成 DB2 數(shù)據(jù)庫系統(tǒng)宕機(jī)。
2、 注意交易日志存儲(chǔ)空間
在歸檔日志模式下,如果沒有使用自動(dòng)歸檔方式,則存儲(chǔ)的日志文件會(huì)不斷增多,有可能造成日志所在的文件系統(tǒng)空間滿。 當(dāng)這種情況發(fā)生時(shí),會(huì)根據(jù)參數(shù) BLK_LOG_DSK_FUL 的配置而有不同的現(xiàn)象:
1)如果該參數(shù)啟用,則 DB2 數(shù)據(jù)庫可繼續(xù)讀操作,但是寫操作會(huì)掛起
2)如果該參數(shù)沒有啟用,則 DB2 數(shù)據(jù)庫會(huì)停止工作
兩種情況下,都需要到日志所在的文件系統(tǒng)添加了空間才恢復(fù)正常。
3、 按照系統(tǒng)的實(shí)際工作量配置日志空間
DB2數(shù)據(jù)庫通過日志文件維護(hù)數(shù)據(jù)的完整性和一致性。DB2 數(shù)據(jù)庫的日志空間可通過如下公式計(jì)算:
日志空間 = (主日志文件 + 二級(jí)日志文件) * 日志文件尺寸
其中:
1) 主日志文件由參數(shù) LOGPRIMARY 控制,
2) 二級(jí)日志文件由參數(shù) LOGSECOND 控制
3) 日志文件尺寸由參數(shù) LOGFILSIZ 控制
4) LOGPRIMARY + LOGSECOND ” 的名為 “” 的已授權(quán)例程
2)數(shù)據(jù)庫日志邏輯錯(cuò)誤 -> 宕機(jī)
3)常見錯(cuò)誤 – 只調(diào)整時(shí)間,未調(diào)整時(shí)區(qū)
7、 不要隨便執(zhí)行 chown (chmod) –R (UNIX/Linux)
在實(shí)例目錄下chown (chmod) -R 會(huì)造成
1) 在數(shù)據(jù)庫服務(wù)器上 db2 connect to 能連接上數(shù)據(jù)庫
2) db2 connect to user … using …連接不上
8、 在歸檔日志模式下使用LOAD記得加NONRECOVERABLE參數(shù)
五、 附:以脫機(jī)方式重組表
以脫機(jī)方式重組表是整理表碎片的最快方法。重組可減少表所需的空間量并提高數(shù)據(jù)訪問和查詢性能。
必須具有 SYSADM、SYSCTRL、SYAINT 或 DBADM 權(quán)限,或者必須具有對(duì)表的 CONTROL 權(quán)限才能重組表。必須具有數(shù)據(jù)庫連接才能重組表。
標(biāo)識(shí)需要重組的表之后,可以對(duì)這些表運(yùn)行 REORG 實(shí)用程序,并且可以選擇對(duì)在這些表上定義的任何索引運(yùn)行該實(shí)用程序。
1. 要使用 CLP 重組表,請(qǐng)發(fā)出 REORG TABLE 命令:
db2 reorg table test.employee
要使用臨時(shí)表空間 mytemp 重組表,請(qǐng)輸入:
db2 reorg table test.employee use mytemp
要重組表并根據(jù)索引 myindex 對(duì)行進(jìn)行重新排序,請(qǐng)輸入:
db2 reorg table test.employee index myindex
2. 要使用 SQL 調(diào)用語句重組表,請(qǐng)使用 ADMIN_CMD 過程發(fā)出 REORG TABLE 命令:
call sysproc.admin_cmd (‘reorg table employee index myindex’)
3. 要使用 DB2 管理 API 重組表,請(qǐng)使用 db2REORG API。
在重組表之后,應(yīng)收集有關(guān)表的統(tǒng)計(jì)信息,以便優(yōu)化器具有最準(zhǔn)確的數(shù)據(jù)來評(píng)估查詢?cè)L問方案。
六、 附:索引重組
通過刪除和插入操作對(duì)表進(jìn)行更新后,索引的性能會(huì)降低,其表現(xiàn)方式如下:
? 葉子頁分段
葉子頁被分段之后,由于必須讀取更多的葉子頁才能訪存表頁,因此 I/O 操作成本會(huì)增加。
? 物理索引頁的順序不再與這些頁上的鍵順序相匹配(此稱為不良集群索引)。
葉子頁出現(xiàn)不良集群情況后,順序預(yù)取操作的效率將降低,因此會(huì)導(dǎo)致更多的 I/O 等待。
? 形成的索引大于其最有效的級(jí)別數(shù)。
在此情況下應(yīng)重組索引。
如果在創(chuàng)建索引時(shí)設(shè)置了 MINPCTUSED 參數(shù),則在刪除某個(gè)鍵且可用空間小于指定的百分比時(shí),數(shù)據(jù)庫服務(wù)器會(huì)自動(dòng)合并索引葉子頁。此過程稱為聯(lián)機(jī)索引整理碎片。但是,要復(fù)原索引集群和可用空間以及降低葉級(jí)別,請(qǐng)使用下列其中一種方法:
? 刪除并重新創(chuàng)建索引。
? 使用 REORG INDEXES 命令聯(lián)機(jī)重組索引。
因?yàn)榇朔椒ㄔ试S用戶在重建表索引期間對(duì)表進(jìn)行讀寫操作,所以在生產(chǎn)環(huán)境中可能需要選擇此方法。
? 使用允許脫機(jī)重組表及其索引的選項(xiàng)運(yùn)行 REORG TABLE 命令。
聯(lián)機(jī)索引重組
在使用 ALLOW WRITE ACCESS 選項(xiàng)運(yùn)行 REORG INDEXES 命令時(shí),如果同時(shí)允許對(duì)指定的表進(jìn)行讀寫訪問,則會(huì)重建該表的所有索引。進(jìn)行重組時(shí),對(duì)基礎(chǔ)表所作的任何將會(huì)影響到索引的更改都將記錄在 DB2? 日志中。另外,如果有任何內(nèi)部內(nèi)存緩沖區(qū)空間可供使用,則還將這些更改放在這樣的內(nèi)存空間中。重組將處理所記錄的更改以便在重建索引時(shí)與當(dāng)前寫活動(dòng)保持同步更新。內(nèi)部內(nèi)存緩沖區(qū)空間是根據(jù)需要從實(shí)用程序堆中分配的指定內(nèi)存區(qū)域,它用來存儲(chǔ)對(duì)正在創(chuàng)建或重組的索引所作的更改。使用內(nèi)存緩沖區(qū)空間使索引重組操作能夠通過這樣的方式來處理更改,即先直接從內(nèi)存讀取,然后讀取日志(如有必要),但讀取日志的時(shí)間要晚得多。在重組操作完成后,將釋放所分配的內(nèi)存。重組完成后,重建的索引可能不是更佳集群的索引。如果為索引指定 PCTFREE,則在重組期間,每頁上均會(huì)保留相應(yīng)百分比的空間。
對(duì)于分區(qū)表,支持對(duì)各個(gè)索引進(jìn)行聯(lián)機(jī)索引重組和清除。要對(duì)各個(gè)索引進(jìn)行重組,指定索引名:REORG INDEX index_name for TABLE table_name
對(duì)于空間索引或多維集群(MDC)表,不支持采用 ALLOW WRITE 方式的聯(lián)機(jī)索引重組。
注: REORG INDEXES 命令的 CLEANUP ON 選項(xiàng)不能完全重組索引。CLEANUP ON ALL 選項(xiàng)將除去那些標(biāo)記為“刪除”且被認(rèn)為要落實(shí)的鍵。此外,它還將釋放所有標(biāo)記為“刪除”且被認(rèn)為要落實(shí)的鍵所在的頁。在釋放頁后,相鄰的葉子頁將會(huì)合并,前提是這樣做可以在合并頁上至少留出 PCTFREE 可用空間。PCTFREE 是指在創(chuàng)建索引時(shí)為其定義的可用空間百分比。CLEANUP ON PAGES 選項(xiàng)僅刪除那些標(biāo)記為“刪除”且被認(rèn)為要落實(shí)的所有鍵所在的頁。
使用 CLEANUP ON 選項(xiàng)對(duì)分區(qū)表的索引進(jìn)行重組時(shí),支持任何訪問級(jí)別。如果未指定 CLEANUP ON 選項(xiàng),則缺省訪問級(jí)別 ALLOW NO ACCESS 是唯一支持的訪問級(jí)別。
REORG INDEXES 具有下列要求:
? 對(duì)索引和表具有 SYSADM、SYAINT、SYSCTRL 或 DBADM 權(quán)限,或者具有 CONTROL 特權(quán)。
? 用于存儲(chǔ)索引的表空間的可用空間數(shù)量等于索引的當(dāng)前大小
在發(fā)出 CREATE TABLE 語句時(shí),考慮在大型表空間中重組索引。
? 其他日志空間
REORG INDEXES 需要記錄其活動(dòng)。因此,重組可能會(huì)失敗,尤其是在系統(tǒng)繁忙和記錄其他并發(fā)活動(dòng)時(shí)。
注: 如果具有 ALLOW NO ACCESS 選項(xiàng)的 REORG INDEXES ALL 命令運(yùn)行失敗,則會(huì)標(biāo)記索引無效并且此項(xiàng)操作不可撤銷。但是,如果具有 ALLOW READ ACCESS 選項(xiàng)的 REORG 命令或具有 ALLOW WRITE ACCESS 選項(xiàng)的 REORG 命令運(yùn)行失敗,則可以復(fù)原原來的索引對(duì)象。
七、 附:收集和更新統(tǒng)計(jì)信息的準(zhǔn)則
RUNSTATS 命令收集表、索引和統(tǒng)計(jì)信息視圖的統(tǒng)計(jì)信息,以為優(yōu)化器提供準(zhǔn)確信息進(jìn)行訪問方案選擇。
在下列情況下,使用 RUNSTATS 實(shí)用程序來收集統(tǒng)計(jì)信息:
? 當(dāng)數(shù)據(jù)已裝入表中且已創(chuàng)建適當(dāng)?shù)乃饕龝r(shí)。
? 當(dāng)在表中創(chuàng)建新的索引時(shí)。如果自從上次在表中運(yùn)行 RUNSTATS 以來尚未修改表,則只需要對(duì)新的索引執(zhí)行 RUNSTATS。
? 當(dāng)一個(gè)表已用 REORG 實(shí)用程序重組時(shí)。
? 當(dāng)通過數(shù)據(jù)修改、刪除和插入已大量更新表及其索引時(shí)。(此處所指的“大量”可能表示有 10% 到 20% 的表和索引數(shù)據(jù)受影響。)
? 在綁定性能非常重要的應(yīng)用程序之前
? 當(dāng)您想要比較當(dāng)前和先前統(tǒng)計(jì)信息時(shí)。如果定期更新統(tǒng)計(jì)信息,則可以及早發(fā)現(xiàn)性能問題。
? 當(dāng)預(yù)取量更改時(shí)。
? 當(dāng)使用了 REDISTRIBUTE DATABASE PARTITION GROUP 實(shí)用程序時(shí)。
注:
在先前版本的 DB2? 中,此命令使用了 NODEGROUP 關(guān)鍵字,而不是 DATABASE PARTITION GROUP 關(guān)鍵字。
? 使用 RUNSTATS 實(shí)用程序來收集關(guān)于 XML 列的統(tǒng)計(jì)信息。 使用 RUNSTATS 僅收集 XML 列的統(tǒng)計(jì)信息時(shí),將保留 LOAD 或上一次執(zhí)行 RUNSTATS 實(shí)用程序已收集的非 XML 列的現(xiàn)有統(tǒng)計(jì)信息。如果先前已收集關(guān)于一些 XML 列的統(tǒng)計(jì)信息,則在當(dāng)前命令未收集關(guān)于該 XML 列的統(tǒng)計(jì)信息時(shí),將刪除先前收集的 XML 列的統(tǒng)計(jì)信息;在當(dāng)前命令收集了關(guān)于該 XML 列的統(tǒng)計(jì)信息時(shí),將替換先前收集的 XML 列的統(tǒng)計(jì)信息。
要提高 RUNSTATS 性能并保存用來存儲(chǔ)統(tǒng)計(jì)信息的磁盤空間,考慮僅指定應(yīng)該收集其數(shù)據(jù)分布統(tǒng)計(jì)信息的列。
理論上,您應(yīng)在運(yùn)行統(tǒng)計(jì)信息之后重新綁定應(yīng)用程序。如果查詢優(yōu)化器具有新的統(tǒng)計(jì)信息,則它可以選擇不同的訪問方案。
如果您沒有足夠的時(shí)間一次收集全部的統(tǒng)計(jì)信息,則可以運(yùn)行 RUNSTATS 來每次僅更新幾個(gè)表、索引或統(tǒng)計(jì)信息視圖的統(tǒng)計(jì)信息,并輪流完成該組對(duì)象。如果對(duì)選擇性部分更新運(yùn)行 RUNSTATS 期間由于表上的活動(dòng)而產(chǎn)生了不一致性,則在查詢優(yōu)化期間將發(fā)出警告消息(SQL0437W,原因碼 6)。例如,如果執(zhí)行 RUNSTATS 來收集表分布統(tǒng)計(jì)信息,以及在某個(gè)表活動(dòng)后,再次執(zhí)行 RUNSTATS 來收集該表的索引統(tǒng)計(jì)信息,則可能發(fā)生這種情況。如果由于表上的活動(dòng)產(chǎn)生了不一致并且在查詢優(yōu)化期間檢測(cè)到這些不一致,則發(fā)出該警告消息。當(dāng)發(fā)生這種情況時(shí),應(yīng)再次運(yùn)行 RUNSTATS 來更新分布統(tǒng)計(jì)信息。
要確保索引統(tǒng)計(jì)信息和表同步,執(zhí)行 RUNSTATS 來同時(shí)收集表和索引統(tǒng)計(jì)信息。索引統(tǒng)計(jì)信息保留自上次運(yùn)行 RUNSTATS 以來收集的大部分表和列的統(tǒng)計(jì)信息。如果自上次收集該表的統(tǒng)計(jì)信息以來已對(duì)該表做了大量修改,則只收集該表的索引統(tǒng)計(jì)信息將使兩組統(tǒng)計(jì)信息不能在所有節(jié)點(diǎn)上都同步。
對(duì)生產(chǎn)系統(tǒng)調(diào)用 RUNSTATS 可能會(huì)對(duì)生產(chǎn)工作負(fù)載的性能產(chǎn)生負(fù)面影響。RUNSTATS 實(shí)用程序現(xiàn)在支持調(diào)速選項(xiàng),在執(zhí)行較高級(jí)別的數(shù)據(jù)庫活動(dòng)期間,可以使用調(diào)速選項(xiàng)來限制執(zhí)行 RUNSTATS 的性能影響。
在分區(qū)數(shù)據(jù)庫環(huán)境中收集表的統(tǒng)計(jì)信息時(shí),RUNSTATS 僅收集執(zhí)行該命令的數(shù)據(jù)庫分區(qū)上的表的統(tǒng)計(jì)信息。將此數(shù)據(jù)庫分區(qū)的 RUNSTATS 結(jié)果推廣到其他數(shù)據(jù)庫分區(qū)。如果執(zhí)行 RUNSTATS 的數(shù)據(jù)庫分區(qū)不包含特定表的一部分,則將請(qǐng)求發(fā)送到數(shù)據(jù)庫分區(qū)組中包含該表一部分的之一個(gè)數(shù)據(jù)庫分區(qū)。
收集統(tǒng)計(jì)信息視圖的統(tǒng)計(jì)信息時(shí),將收集所有包含該視圖引用的基本表的數(shù)據(jù)庫分區(qū)的統(tǒng)計(jì)信息。
考慮以下技巧來提高 RUNSTATS 的效率和已收集的統(tǒng)計(jì)信息的有效性:
? 僅對(duì)用來連接表的列或 WHERE、GROUP BY 以及查詢的類似子句中的列收集統(tǒng)計(jì)信息。如果對(duì)這些列建立了索引,則可以用 RUNSTATS 命令的 ON ON KEY COLUMNS 子句指定列。
? 為特定表和表中特定列定制 num_freqvalues 和 num_quantiles 的值。
? 使用 SAMPLE DETAILED 子句收集 DETAILED 索引統(tǒng)計(jì)信息,以減少對(duì)詳細(xì)的索引統(tǒng)計(jì)信息執(zhí)行的后臺(tái)計(jì)算量。SAMPLE DETAILED 子句減少收集統(tǒng)計(jì)信息所需要的時(shí)間,并在大多數(shù)情況下產(chǎn)生足夠的精度。
? 當(dāng)創(chuàng)建已填寫的表的索引時(shí),添加 COLLECT STATISTICS 子句來在創(chuàng)建索引時(shí)創(chuàng)建統(tǒng)計(jì)信息。
? 當(dāng)添加或除去了大量表行時(shí),或如果更新了收集其統(tǒng)計(jì)信息的列中的數(shù)據(jù),則再次執(zhí)行 RUNSTATS 來更新統(tǒng)計(jì)信息。
? 因?yàn)?RUNSTATS 僅收集單個(gè)數(shù)據(jù)庫分區(qū)的統(tǒng)計(jì)信息,所以,如果數(shù)據(jù)不是在所有數(shù)據(jù)庫分區(qū)中一致分發(fā)的,則統(tǒng)計(jì)信息將不太準(zhǔn)確。如果您懷疑存在變形數(shù)據(jù)分發(fā),則您可能想要在執(zhí)行 RUNSTATS 之前使用 REDISTRIBUTE DATABASE PARTITION GROUP 命令來在各數(shù)據(jù)庫分區(qū)之間再分發(fā)數(shù)據(jù)。
八、 附:使用 CLP 捕獲數(shù)據(jù)庫運(yùn)行狀況快照
可從 CLP 使用 GET HEALTH SNAPSHOT 命令來捕獲運(yùn)行狀況快照。該命令語法支持檢索運(yùn)行狀況監(jiān)視器監(jiān)視的不同對(duì)象類型的運(yùn)行狀況快照信息。
先決條件
必須具有實(shí)例連接才能捕獲運(yùn)行狀況快照。如果沒有實(shí)例連接,則創(chuàng)建缺省實(shí)例連接。要獲取遠(yuǎn)程實(shí)例的快照,必須先連接至該實(shí)例。
過程
要使用 CLP 捕獲數(shù)據(jù)庫運(yùn)行狀況快照
1. 從 CLP 發(fā)出帶有期望參數(shù)的 GET HEALTH SNAPSHOT 命令。
在以下示例中,將在啟動(dòng)數(shù)據(jù)庫管理器之后立即捕獲數(shù)據(jù)庫管理器級(jí)別運(yùn)行狀況快照。
db2 get health snapshot for dbm
2. 對(duì)于分區(qū)數(shù)據(jù)庫系統(tǒng),可為特定分區(qū)捕獲專門的數(shù)據(jù)庫快照,或者為所有分區(qū)捕獲全局的數(shù)據(jù)庫快照。要對(duì)特定分區(qū)(如分區(qū)號(hào) 2)上的數(shù)據(jù)庫捕獲運(yùn)行狀況快照,請(qǐng)發(fā)出以下命令:
db2 get health snapshot for db on sample at dbpartitionnum 2
要對(duì)所有分區(qū)上的所有應(yīng)用程序捕獲數(shù)據(jù)庫快照,請(qǐng)發(fā)出以下命令:
db2 get health snapshot for db on sample global
以下命令捕獲的運(yùn)行狀況快照帶有附加詳細(xì)信息,包括公式、附加信息和運(yùn)行狀況指示器歷史記錄:
db2 get health snapshot for db on sample show detail
3. 對(duì)于基于狀態(tài)的運(yùn)行狀況指示器,可對(duì)所有對(duì)象捕獲數(shù)據(jù)庫快照,而不考慮這些對(duì)象的狀態(tài)。常規(guī) GET HEALTH SNAPSHOT FOR DB 命令返回所有對(duì)象,這些對(duì)象需要針對(duì)所有基于狀態(tài)的運(yùn)行狀況指示器的警報(bào)。
要對(duì)列示了所有對(duì)象的數(shù)據(jù)庫捕獲運(yùn)行狀況快照,請(qǐng)發(fā)出以下命令:
db2 get health snapshot for db on sample with full collection
關(guān)于db2數(shù)據(jù)庫創(chuàng)建時(shí)間的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
數(shù)據(jù)庫運(yùn)維技術(shù)服務(wù) ? 如何查詢和修改DB2數(shù)據(jù)庫的創(chuàng)建時(shí)間 (db2數(shù)據(jù)庫創(chuàng)建時(shí)間)
管理員 普通
分享到:
相關(guān)推薦
如何復(fù)制粘貼數(shù)據(jù)庫不覆蓋原有數(shù)據(jù) (復(fù)制粘貼的時(shí)候怎么不覆蓋原來的數(shù)據(jù)庫)
PL/SQL查詢錯(cuò)誤:用戶名和密碼不匹配 (plsql查詢數(shù)據(jù)庫用戶名和密碼錯(cuò)誤)
MySQL 數(shù)據(jù)庫類型詳解 (mysql數(shù)據(jù)庫類型有哪些)
導(dǎo)入數(shù)據(jù)庫技巧:快速處理大量數(shù)據(jù) (如何快速把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫)
Redis數(shù)據(jù)結(jié)構(gòu)簡(jiǎn)介 (redis數(shù)據(jù)庫結(jié)構(gòu))
數(shù)據(jù)庫小數(shù)點(diǎn)精度控制的重要性 (數(shù)據(jù)庫小數(shù)點(diǎn))
SQLServer數(shù)據(jù)庫去重操作,輕松管理重復(fù)數(shù)據(jù) (sqlserver數(shù)據(jù)庫去重)
輕松獲取短信記錄——數(shù)據(jù)庫短信讀取實(shí)用技巧 (數(shù)據(jù)庫短信讀取)
隨機(jī)文章
掌握數(shù)據(jù)庫接口表的重要性及使用技巧 (數(shù)據(jù)庫接口表)
探究蘇寧使用的SAP數(shù)據(jù)庫種類 (蘇寧sap用的什么數(shù)據(jù)庫)
揭露MSSQL數(shù)據(jù)庫存在的風(fēng)險(xiǎn)問題 (mssql數(shù)據(jù)庫置疑)
快速備份Mysql數(shù)據(jù)庫,保證數(shù)據(jù)安全 (mysql刪除整個(gè)數(shù)據(jù)庫備份)
深入淺出,掌握access數(shù)據(jù)庫系統(tǒng)開發(fā)技能 (access數(shù)據(jù)庫系統(tǒng)開發(fā)從基礎(chǔ)到實(shí)踐)
Java實(shí)現(xiàn)數(shù)據(jù)庫登錄:詳細(xì)步驟及示例代碼教程 (java鏈接數(shù)據(jù)庫登錄代碼怎么寫)
最近更新
標(biāo)簽
Linux Linux教程 Linux資訊 MacOS MacOS教程 MacOS資訊 MongoDB MongoDB教程 MongoDB資訊 MSSQL MSSQL錯(cuò)誤 MySQL mysql教程 MySQL維護(hù) MySQL資訊 Neo4j Neo4j教程 Neo4j資訊 ORACLE Oracle優(yōu)化 oracle內(nèi)部視圖 oracle參數(shù) oracle開發(fā) oracle異常修復(fù) oracle故障處理 oracle教程 oracle維護(hù) oracle視圖 ORACLE資訊 oracle遠(yuǎn)程維護(hù) ORA錯(cuò)誤碼 Redis Redis教程 Redis資訊 SQLServer SQLServer報(bào)錯(cuò) SQLServer教程 SQLServer資訊 SQL修復(fù) SQL異常 SQL遠(yuǎn)程處理 Windows 技術(shù)文檔 操作系統(tǒng) 數(shù)據(jù)庫
- 登錄
- 注冊(cè)
安全登錄
立即注冊(cè) 忘記密碼?
UPDATE STATISTICS: 更新表的統(tǒng)計(jì)數(shù)據(jù),根據(jù)該統(tǒng)計(jì)數(shù)據(jù)判斷是否需要重組表
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網(wǎng)、IDC服務(wù)、應(yīng)用軟件開發(fā)、網(wǎng)站建設(shè)推廣的公司,為客戶提供互聯(lián)網(wǎng)基礎(chǔ)服務(wù)!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國云服務(wù)器和獨(dú)立服務(wù)器。創(chuàng)新互聯(lián)——四川成都IDC機(jī)房服務(wù)器托管/機(jī)柜租用。為您精選優(yōu)質(zhì)idc數(shù)據(jù)中心機(jī)房租用、服務(wù)器托管、機(jī)柜租賃、大帶寬租用,高電服務(wù)器托管,算力服務(wù)器租用,可選線路電信、移動(dòng)、聯(lián)通機(jī)房等。
網(wǎng)頁名稱:如何查詢和修改DB2數(shù)據(jù)庫的創(chuàng)建時(shí)間(db2數(shù)據(jù)庫創(chuàng)建時(shí)間)
分享URL:http://www.5511xx.com/article/cdpsjgp.html


咨詢
建站咨詢
