




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、EDA性能、安全和規(guī)范相關(guān)要點(diǎn)V1.9-修訂的版本歷史-修訂者修訂日期修訂內(nèi)容高健、劉紅波、李雙全2010-09-13創(chuàng)建PPT版。高健2011-07-27創(chuàng)建問(wèn)答。版本V0.8。高健2011-07-28采納符松建議后,從應(yīng)用角度進(jìn)行問(wèn)答描述。版本V0.9。高健2011-7-29采納耿珍建議后,增加了目錄,便于檢索;以及進(jìn)行了版本管理。版本V1.0。高健2011-8-8根據(jù)8月4日,IBM工程師的建議增加了“通過(guò)執(zhí)行計(jì)劃查看不合理的嵌套連接NLJOIN”及優(yōu)化步驟。版本V1.1。高健2011-8-17根據(jù)8月16,亞聯(lián)公司發(fā)布的ODS數(shù)據(jù)庫(kù)常用字段定義規(guī)范,增加“SERV_ID等常用字段的長(zhǎng)度
2、為什么需要統(tǒng)一”。版本V1.2。高健2011-9-21根據(jù)9月15日賈文學(xué)處理故障的經(jīng)驗(yàn),通過(guò)減少對(duì)字段的函數(shù)處理來(lái)提升SQL性能;根據(jù)8月賬期出現(xiàn)的程序不規(guī)范,例如,月報(bào)表使用日套表等情況,增加相關(guān)程序規(guī)范,提升數(shù)據(jù)質(zhì)量;并將文檔的定位進(jìn)行擴(kuò)充,在性能、安全的基礎(chǔ)上增加了規(guī)范。版本V1.3。高健2012-2-21對(duì)“關(guān)閉數(shù)據(jù)庫(kù)事務(wù)日志”方面的要求進(jìn)一步進(jìn)行了強(qiáng)化,確保避免在數(shù)據(jù)測(cè)試中由于操作失誤導(dǎo)致數(shù)據(jù)庫(kù)癱瘓。版本V1.4。劉紅波、劉祥、高健、李蘭田、符松2012-3-29增加3條:“新增、修改套表的流程及注意事項(xiàng)”、“SQL中NOT IN語(yǔ)法的注意事項(xiàng)”、“賬目和套餐歸并的統(tǒng)計(jì)指標(biāo)進(jìn)行集中
3、管理的規(guī)范”。版本V1.5。高健、符松2012-4-25增加了“分階段學(xué)習(xí)的列表”,便于指導(dǎo)部分學(xué)員快速掌握基本要點(diǎn)。其中,本次整理了數(shù)據(jù)部開(kāi)發(fā)組、數(shù)據(jù)部維護(hù)組第一階段需至少掌握的要點(diǎn)共計(jì)14個(gè)。同時(shí),對(duì)調(diào)度依賴等要點(diǎn)的描述進(jìn)行了完善。版本V1.6。高健2012-6-5修改和新增了第8、36、37點(diǎn):判斷和處理性能異常的SQL;程序割接的重點(diǎn)應(yīng)用次日看數(shù)出賬穩(wěn)定性保障要求;調(diào)度系統(tǒng)的新功能上線、日常運(yùn)維、老功能下線的管理辦法。另外,完善了“學(xué)員學(xué)習(xí)要點(diǎn)的范圍建議”,對(duì)各學(xué)員的學(xué)習(xí)范圍進(jìn)一步細(xì)化;增加了前言。版本1.7。高健、劉紅波2012-8-16補(bǔ)充了第38點(diǎn)、完善了第9點(diǎn):補(bǔ)充了如何在程序
4、設(shè)計(jì)中避免由于壞表而導(dǎo)致數(shù)據(jù)丟失的事故發(fā)生;完善了數(shù)據(jù)庫(kù)空間清理的方法和步驟。版本1.8。符松、梁洪彬、劉祥;高健2012-11-15補(bǔ)充了第39點(diǎn):對(duì)“通過(guò)999接入碼發(fā)布短信”的接收人員進(jìn)行統(tǒng)一管理的要求;補(bǔ)充了第40點(diǎn):如何有效實(shí)現(xiàn)從開(kāi)發(fā)向維護(hù)過(guò)渡的運(yùn)維保障。同時(shí),將本要點(diǎn)文件名改為EDA性能、安全和規(guī)范相關(guān)要點(diǎn)版本1.9。-各崗位學(xué)習(xí)要點(diǎn)的范圍建議-崗位(學(xué)員)階段本階段需至少掌握的要點(diǎn)ID列表項(xiàng)目經(jīng)理、技術(shù)經(jīng)理、組長(zhǎng)(含局方)第一階段1、5、10、20、35、39、40數(shù)據(jù)部維護(hù)組第一階段1、2、3、4、5、6、7、8、9、10、11、12、13、19、20、21、29、30、32、
5、33、35、36、38、39、40數(shù)據(jù)部開(kāi)發(fā)組第一階段1、2、3、4、5、6、7、8、10、12、19、20、32、33、35、36、38、39、40亞聯(lián)公司第一階段1、2、3、4、5、6、7、8、9、10、11、12、13、19、20、21、29、30、32、33、35、36、38、39、40中冉公司第一階段1、2、3、4、5、6、7、8、9、10、11、12、13、19、20、21、29、30、32、33、38DB2數(shù)據(jù)庫(kù)的查詢?nèi)藛T(含偶爾使用一次)第一階段19數(shù)據(jù)庫(kù)表空間維護(hù)人員第二階段9、28-目錄-EDA性能、安全和規(guī)范相關(guān)要點(diǎn)1-修訂的版本歷史-1-各崗位學(xué)習(xí)要點(diǎn)的范圍建議-2-目
6、錄-2-各崗位學(xué)習(xí)的必要性和注意事項(xiàng)-41.SERV_ID等常用字段的長(zhǎng)度為什么需要統(tǒng)一?如何查看這些字段的統(tǒng)一定義要求?62.為什么要查看“執(zhí)行計(jì)劃”?查看“執(zhí)行計(jì)劃”常用方法有哪兩種?“表的連接方式”有哪些?如何消滅掉不合理的嵌套連接NLJOIN?63.建表時(shí),為什么必須指定分區(qū)鍵(PARTITIONING KEY)?指定分區(qū)鍵必須注意些什么?84.如何判斷某個(gè)表的數(shù)據(jù)在各節(jié)點(diǎn)的空間有木有偏移(即,分區(qū)鍵合不合理)?95.為什么要求絕大部分?jǐn)?shù)據(jù)處理SQL須關(guān)閉數(shù)據(jù)庫(kù)事務(wù)日志?在哪些情況下,必須關(guān)閉事務(wù)日志?在哪些情況下,不能關(guān)閉事務(wù)日志?96.在下面的三個(gè)場(chǎng)景中執(zhí)行SQL,怎樣才能真正實(shí)現(xiàn)
7、事務(wù)日志的關(guān)閉:1)CRT TELNET后臺(tái)方式?2)TCL程序中?3)RAPID SQL工具中?107.LOAD過(guò)程中如何查看入庫(kù)的進(jìn)展?若發(fā)現(xiàn)異常、終止,必須立即執(zhí)行的語(yǔ)句是什么?如何清除表的LOAD狀態(tài)?108.為什么需要及時(shí)發(fā)現(xiàn)和處理SQL運(yùn)行中的性能異常?如何判定SQL運(yùn)行為性能異常?如何殺掉性能異常的SQL?分析和優(yōu)化性能異常SQL的方法有哪些?119.怎樣查看ODS或EDA的數(shù)據(jù)庫(kù)空間使用情況?該信息多久更新一次?其中,TBSP_FREE_PAGES、KEEP、PER這三個(gè)字段的含義是什么?若某個(gè)表空間緊張(告警),對(duì)應(yīng)的處理方法和步驟有哪些?1110.建表時(shí),為什么必須指定表空
8、間?其中,“報(bào)表、開(kāi)發(fā)、臨時(shí)性統(tǒng)計(jì)(即,除通過(guò)版本正式上線外)”人員建表時(shí),必須分別放入三個(gè)專用的空間,它們的名字分別是什么?1311.DROP或DELETE全表數(shù)據(jù)前,必須先執(zhí)行什么語(yǔ)句才能釋放空間?為什么部分命令將表的數(shù)據(jù)刪除或壓縮后,數(shù)據(jù)庫(kù)的空間不釋放?1312.為什么用LIKE、AS命令建表時(shí),容易發(fā)生節(jié)點(diǎn)空間偏移,還把TBS_DIM表空間給漲爆了?應(yīng)該如何避免?1413.系統(tǒng)表syscat.tables的以下常用字段的含義是什么?若要查到某個(gè)表的這些系統(tǒng)字段信息,需要先運(yùn)行什么命令?其中,常用的系統(tǒng)表查看語(yǔ)句和字段:select owner,definer,tabname,CARD
9、ROWS,FPAGES,tbspace,STATS_TIME,CREATE_TIME,COMPRESSION,AVGROWCOMPRESSIONRATIO AVG from syscat.tables where tabname like 'DS%201101。1414.為什么要做表的數(shù)據(jù)重組(壓縮)reorg?ODS的哪些情況下需要盡快執(zhí)行reorg?如何查看表的實(shí)際壓縮比例?1515.表數(shù)據(jù)重組(壓縮)reorg命令的兩種常用格式?為什么在RAPID SQL工具中執(zhí)行報(bào)錯(cuò)?1516.為什么有些表執(zhí)行reorg命令后,實(shí)際壓縮比例還是0,是不是需先確保一個(gè)屬性?如何在建表語(yǔ)句中指定該
10、屬性?若建表中未指定,如何調(diào)整?如何查看某個(gè)表的該屬性?1517.為什么要更新表的統(tǒng)計(jì)信息runstats?哪些情況下需要對(duì)表做runstats?1618.runstats命令的兩種常用格式?為什么在RAPID SQL工具中執(zhí)行報(bào)錯(cuò)?其中,哪種情況建議采用抽樣10%的統(tǒng)計(jì)信息更新方式?1619.為什么在執(zhí)行SQL后需盡快斷開(kāi)數(shù)據(jù)庫(kù)連接?其中,RAPID SQL工具和CRT TELENET工具要如何才能真正的斷開(kāi)數(shù)據(jù)庫(kù)連接?為什么在使用“RAPID SQL工具”過(guò)程中,特別強(qiáng)調(diào)需及時(shí)斷開(kāi)連接或關(guān)閉工具?1620.在調(diào)度系統(tǒng)建流程的過(guò)程中,為什么必須建立完整的流程依賴?完整依賴的最小直觀判斷標(biāo)準(zhǔn)是
11、什么?1721.為什么營(yíng)維支撐系統(tǒng)的前端表要使用分區(qū)表?建表語(yǔ)法是什么?判斷是不是分區(qū)表的方法?如果發(fā)現(xiàn)分區(qū)表壞了后,咋個(gè)辦?1822.為什么ODS大部分情況下,使用表的鎖(LOCK)為“表級(jí)”?另外,“行級(jí)”鎖用于那些場(chǎng)合?指定表的鎖(LOCK)類型的語(yǔ)句?1823.在ODS中,為什么大部分表不需要建索引?在哪些場(chǎng)合才有必要建索引?哪些字段不適合建索引?1824.表的APPEND ON 屬性是什么意思?如何設(shè)置這個(gè)屬性?1925.綜合考慮一個(gè)表的常用屬性后,一個(gè)完整的建表SQL語(yǔ)法示例?例如,1926.建表、刪表操作可不可以在程序中動(dòng)態(tài)執(zhí)行?一般哪個(gè)時(shí)候執(zhí)行?1927.數(shù)據(jù)庫(kù)的表張數(shù)太多,對(duì)
12、性能有木有影響?列舉哪些措施降低表的張數(shù)?2028.如果嫌dbpartitionnum函數(shù)運(yùn)行速度太慢,有木有快速、大致估算某個(gè)表的各節(jié)點(diǎn)空間偏移情況的語(yǔ)句?如果發(fā)現(xiàn)一個(gè)空間的2個(gè)節(jié)點(diǎn)嚴(yán)重偏移(7%以上),如何才能通過(guò)快速、批量運(yùn)算,輕松揪出是哪些表的分區(qū)鍵指定得有問(wèn)題?2029.在進(jìn)行文件入庫(kù)時(shí),如何避免數(shù)據(jù)重復(fù)LOAD而導(dǎo)致表中數(shù)據(jù)重復(fù)?在進(jìn)行表出庫(kù)時(shí),如何避免DECIMAL類型的字段出現(xiàn)"+"、"000"等符號(hào)?2130.觀察數(shù)據(jù)庫(kù)主機(jī)當(dāng)前的運(yùn)行性能的常用命令vmstat格式?主要看哪些指標(biāo)?是什么意思? IDLE是什么意思?典型的運(yùn)行程序太多導(dǎo)致
13、系統(tǒng)性能下降的表象及處理方法?2131.為什么減少對(duì)字段的函數(shù)處理可以大大提升SQL性能?如何改進(jìn)?2232.在程序開(kāi)發(fā)中,為什么月報(bào)的數(shù)據(jù)來(lái)源不能是日套表、DM表等每日會(huì)變化的數(shù)據(jù)?2233.新增、修改套表的流程及注意事項(xiàng)有哪些?2234.SQL中NOT IN語(yǔ)法的注意事項(xiàng)?2335.在開(kāi)發(fā)過(guò)程中,主產(chǎn)品和套餐(含優(yōu)惠)相關(guān)的歸并統(tǒng)計(jì)指標(biāo)是如何進(jìn)行集中管理的?2336.在程序或系統(tǒng)調(diào)整(割接)當(dāng)日,如何保障重點(diǎn)應(yīng)用的次日看數(shù)的出賬穩(wěn)定性?2337.在調(diào)度系統(tǒng)中,新功能上線、日常運(yùn)維、老功能下線的管理辦法有哪些?2438.在DB2中,為什么會(huì)出現(xiàn)壞表?如何在程序設(shè)計(jì)中避免由于壞表而導(dǎo)致數(shù)據(jù)丟失
14、的事故發(fā)生?2439.對(duì)“通過(guò)999接入碼發(fā)布短信”的接收人員進(jìn)行統(tǒng)一管理的要求是什么?2540.如何有效實(shí)現(xiàn)從開(kāi)發(fā)向維護(hù)過(guò)渡的運(yùn)維保障?25-各崗位學(xué)習(xí)的必要性和注意事項(xiàng)-一、開(kāi)發(fā)組、維護(hù)組、廠商開(kāi)發(fā)及其他需使用DB2數(shù)據(jù)庫(kù)的各崗位人員學(xué)習(xí)此要點(diǎn)的必要性?如何應(yīng)用到日常工作中?系統(tǒng)建設(shè)的目的是應(yīng)用,而運(yùn)維穩(wěn)定性是系統(tǒng)應(yīng)用的基礎(chǔ);影響運(yùn)維穩(wěn)定性的因素很多,不論開(kāi)發(fā)人員、還是維護(hù)人員,以及所有需使用DB2的人員一個(gè)小小的失誤,都將可能直接導(dǎo)致系統(tǒng)不穩(wěn)定、甚至導(dǎo)致系統(tǒng)不可用。所以,該要點(diǎn)需要各個(gè)崗位的人員均遵守。1)對(duì)于廠商開(kāi)發(fā)人員:提前知曉、遵守規(guī)范要點(diǎn),是后續(xù)測(cè)試效果、運(yùn)維水平的基礎(chǔ)。2)對(duì)于
15、局方實(shí)施人員:功能實(shí)施過(guò)程的管控、程序質(zhì)量把關(guān)和測(cè)試將直接決定系統(tǒng)的穩(wěn)定性,也是實(shí)施人員能力的體現(xiàn)。3)對(duì)于局方維護(hù)人員:日常維護(hù)中,對(duì)系統(tǒng)的穩(wěn)定性應(yīng)該倍加呵護(hù);運(yùn)維穩(wěn)定性直接由維護(hù)組牽頭,所以,更加應(yīng)該起到引導(dǎo)、考核的牽頭作用。如果發(fā)現(xiàn)局方實(shí)施人員未能盡到質(zhì)量把關(guān)責(zé)任的,需引導(dǎo)其加強(qiáng)質(zhì)量意識(shí);如果發(fā)現(xiàn)開(kāi)發(fā)人員等存在不符合規(guī)范的,需采取多種手段加以提升。4)對(duì)于其他需使用DB2數(shù)據(jù)庫(kù)的人員:隨時(shí)將要點(diǎn)作為使用手冊(cè),方可保證不影響系統(tǒng)穩(wěn)定性。二、各崗位學(xué)習(xí)此要點(diǎn)的范圍建議,學(xué)習(xí)、考試的注意事項(xiàng)?分崗位進(jìn)行了第一批學(xué)習(xí)范圍推薦,考試將分崗位在第一批中進(jìn)行抽樣進(jìn)行。對(duì)于學(xué)習(xí)、考試,大家不需要死記硬背
16、,特別是對(duì)于SQL語(yǔ)句、函數(shù)、表名等難記的地方,大家只需要能記住關(guān)鍵字的部分代表字母即可,在實(shí)際使用中,可以根據(jù)關(guān)鍵字母進(jìn)行查找便能有效實(shí)施。例如,對(duì)于第4點(diǎn)“select dbpartitionnum(serv_id),count (*) from tabname group by dbpartitionnum(serv_id) order by 1;”大家只需要能寫出類似“dbpart(字段)”函數(shù)即可。-正文-1. SERV_ID等常用字段的長(zhǎng)度為什么需要統(tǒng)一?如何查看這些字段的統(tǒng)一定義要求?問(wèn)題一:對(duì)于DB2數(shù)據(jù)庫(kù),在表關(guān)聯(lián)查詢時(shí),如相互匹配的兩個(gè)字段數(shù)據(jù)類型不一致(包含定義的數(shù)據(jù)長(zhǎng)度
17、不一致,例如,一個(gè)字段為decimal(16,0),另一個(gè)為decimal(20,0))會(huì)引起數(shù)據(jù)庫(kù)sql優(yōu)化器無(wú)法使用最優(yōu)的join方式進(jìn)行關(guān)聯(lián)查詢,會(huì)出現(xiàn)大表關(guān)聯(lián)時(shí)使用MSJOIN或NLJOIN的情況,嚴(yán)重影響查詢效率。詳見(jiàn)“執(zhí)行計(jì)劃”問(wèn)答。問(wèn)題二:根據(jù)亞信發(fā)布的ODS數(shù)據(jù)庫(kù)常用字段定義規(guī)范 v1.0,SERV_ID等常用字段的定義統(tǒng)一存儲(chǔ)在tbowner.sys_table_columns_Standard表中,信息包括“字段名,字段中文名,字段類型,字段長(zhǎng)度,字段說(shuō)明”。若大家在生產(chǎn)過(guò)程中,希望補(bǔ)充、完善該信息,可以與亞聯(lián)公司的維護(hù)組(目前,劉紅波)聯(lián)系,由亞聯(lián)公司統(tǒng)一維護(hù)。2. 為什
18、么要查看“執(zhí)行計(jì)劃”?查看“執(zhí)行計(jì)劃”常用方法有哪兩種?“表的連接方式”有哪些?如何消滅掉不合理的嵌套連接NLJOIN?問(wèn)題一:對(duì)于開(kāi)發(fā)人員,在上線前的試運(yùn)行時(shí),務(wù)必通過(guò)查看“執(zhí)行計(jì)劃”,診斷多表連接的SQL的性能是否合理;對(duì)于運(yùn)行維護(hù)人員,若發(fā)現(xiàn)一個(gè)多表連接的SQL運(yùn)行速度緩慢,也需要通過(guò)查看“執(zhí)行計(jì)劃”,查看是否存在不合理的連接方式(嵌套連接NLJOIN),或者大數(shù)據(jù)量的MSJOIN。最后,根據(jù)相應(yīng)的優(yōu)化步驟逐一實(shí)施,消滅掉不合理的嵌套連接NLJOIN、MSJOIN。問(wèn)題二:查看SQL的執(zhí)行計(jì)劃常用方法有兩種:一種是通過(guò)CRT工具后臺(tái)執(zhí)行;一種是通過(guò)第三方的工具 或者TOAD工具,或者高版
19、本的DB2客戶端(9.5版以上),另,暫時(shí)無(wú)法運(yùn)行該功能。方法一:對(duì)于ODS,在CRT工具上必須使用tbowner數(shù)據(jù)庫(kù)用戶登陸,執(zhí)行命令如下:ods_db1 /home/tbowner/gj $ db2expln -g -d cqods -z '' -f a2011080816.sql -o a2011080816.exp其中,a2011080816.sql為需要分析的SQL所保存的文件;a2011080816.exp為分析后的執(zhí)行計(jì)劃輸出文件;通過(guò)ods_db1 /home/tbowner/gj $ more a2011080815.exp 查看輸出文件尾部的“執(zhí)行計(jì)劃”樹
20、形圖。例如圖1,方法二:對(duì)于第三方的工具 或者TOAD工具,或者高版本的DB2客戶端(9.5版以上),另,暫時(shí)無(wú)法運(yùn)行該功能。必須使用tbowner用戶,執(zhí)行這些工具中的“Explain Plan”之類的命令即可看到如下圖結(jié)果。問(wèn)題三:“表的連接方式”有哪些?DB2優(yōu)化器在執(zhí)行表的連接時(shí),會(huì)在三種連接方式中自動(dòng)選擇一種。三種連接方式分別為:哈希連接(HSJOIN)、合并連接(MSJOIN)、嵌套連接(NLJOIN)。其中,HSJOIN和MSJOIN方式的速度均比較快,但是,由于MSJOIN需排序,所需的資源較HSJOIN大一些,所以,對(duì)于大數(shù)據(jù)量的表MSJOIN,則需要優(yōu)化;而對(duì)于NLJOIN
21、,由于需要嵌套循環(huán),速度非常低,必須徹底消滅掉不合理的嵌套連接NLJOIN。問(wèn)題四:“如何消滅掉不合理的嵌套連接NLJOIN” ?通過(guò)以下三步逐一進(jìn)行核查、優(yōu)化(MSJOIN的優(yōu)化方法與NLJOIN一樣):步驟1:消滅連接條件的列數(shù)據(jù)類型定義不一致的情況,例如,serv_id,一個(gè)表定義為decimal(12,0),一個(gè)表定義為decimal(14,0);其中,字段的長(zhǎng)度統(tǒng)一定義詳見(jiàn)” SERV_ID等常用字段的長(zhǎng)度為什么需要統(tǒng)一”問(wèn)答。步驟2:消滅連接條件列上的函數(shù)運(yùn)算,例如,a.acc_nbr=substr(b.acc_nbr,5,20)步驟3:給對(duì)應(yīng)的表進(jìn)行runstats統(tǒng)計(jì)更新:若對(duì)
22、應(yīng)表上沒(méi)有收集統(tǒng)計(jì)信息,SQL優(yōu)化引擎不能做出正確判斷。其中,如何查看是否有統(tǒng)計(jì)信息,詳見(jiàn)syscat.tables問(wèn)答;如何收集統(tǒng)計(jì)信息,詳見(jiàn)runstats問(wèn)答3. 建表時(shí),為什么必須指定分區(qū)鍵(PARTITIONING KEY)?指定分區(qū)鍵必須注意些什么?問(wèn)題一:首先,從分區(qū)鍵(PARTITIONING KEY)的作用看,數(shù)據(jù)庫(kù)將根據(jù)此鍵把表的數(shù)據(jù)存儲(chǔ)通過(guò)HASH算法分布到8個(gè)節(jié)點(diǎn),便于8個(gè)節(jié)點(diǎn)并行處理,提升性能;若在建表語(yǔ)句中不指定表空間,系統(tǒng)則會(huì)默認(rèn)用表的第一個(gè)字段,這樣極有可能導(dǎo)致表空間各節(jié)點(diǎn)間的偏移、空間浪費(fèi),同時(shí),降低處理性能。例子,create table aa () PAR
23、TITIONING KEY(serv_id) ;問(wèn)題二:指定分區(qū)鍵必須注意三大方面:1)建表時(shí),勿忘指定KEY:因?yàn)?,若不指定,則將默認(rèn)為第一個(gè)字段,難以滿足第二點(diǎn)。2)指定KEY的字段(或字段組合)的數(shù)據(jù)值要盡量多、數(shù)據(jù)分布要盡量均勻;若一個(gè)字段滿足不了,則需要多找?guī)讉€(gè)字段,用逗號(hào)分隔,組合成KEY。3)大表關(guān)聯(lián)的主要字段最好在KEY中,除非要為這個(gè)字段建索引。根據(jù)以上注意事項(xiàng),適用于做分區(qū)鍵的字段列舉如下:serv_id,cust_id,acct_id;不適合做分區(qū)鍵的字段列舉如下:billing_cycle_id,戰(zhàn)略分群4. 如何判斷某個(gè)表的數(shù)據(jù)在各節(jié)點(diǎn)的空間有木有偏移(即,分區(qū)鍵合不
24、合理)?select dbpartitionnum(serv_id),count (*) from tabname group by dbpartitionnum(serv_id) order by 1;其中,(serv_id為該表任意取一個(gè)字段)5. 為什么要求絕大部分?jǐn)?shù)據(jù)處理SQL須關(guān)閉數(shù)據(jù)庫(kù)事務(wù)日志?在哪些情況下,必須關(guān)閉事務(wù)日志?在哪些情況下,不能關(guān)閉事務(wù)日志?問(wèn)題一:從數(shù)據(jù)庫(kù)事務(wù)日志記錄的作用看,記錄SQL事務(wù)操作(增、刪、改)的數(shù)據(jù)日志,便于提供各種異常中斷后的回滾等恢復(fù)功能;但是,若事務(wù)操作所涉及數(shù)據(jù)量大,則不僅會(huì)導(dǎo)致數(shù)據(jù)處理效率下降,而且容易導(dǎo)致事務(wù)日志滿而被迫回滾,使整個(gè)數(shù)據(jù)
25、庫(kù)幾乎癱瘓。問(wèn)題二:“每次事務(wù)處理在50萬(wàn)記錄以上”,執(zhí)行數(shù)據(jù)處理的SQL均必須關(guān)日志(除“不能關(guān)閉事務(wù)日志”以外,詳見(jiàn)問(wèn)題三)。特別說(shuō)明:由于測(cè)試過(guò)程中無(wú)法完全預(yù)估數(shù)據(jù)量,為此,數(shù)據(jù)測(cè)試處理過(guò)程中,即使預(yù)估的數(shù)量特別少,也必須關(guān)閉事務(wù)日志執(zhí)行SQL。問(wèn)題三:不能容忍表?yè)p壞后的損失,如果表被損壞之后,一定會(huì)導(dǎo)致數(shù)據(jù)丟失、且難以通過(guò)數(shù)據(jù)運(yùn)算得以恢復(fù)和再現(xiàn)。例如,前臺(tái)維護(hù)的工號(hào)表,前臺(tái)導(dǎo)入的樓宇資料;例如,包含歷史數(shù)據(jù)的報(bào)表或指標(biāo)結(jié)果表、匯總表。如果一個(gè)事務(wù)操作涉及的記錄數(shù)超過(guò)50萬(wàn),且不能容忍表?yè)p壞后的損失,則必須拆分為套表模式,或者增加備份表等保障機(jī)制,從而關(guān)閉日志處理。6. 在下面的三個(gè)場(chǎng)景
26、中執(zhí)行SQL,怎樣才能真正實(shí)現(xiàn)事務(wù)日志的關(guān)閉:1)CRT TELNET后臺(tái)方式?2)TCL程序中?3)RAPID SQL工具中?首先,對(duì)于每個(gè)場(chǎng)景,在建表時(shí),均需要指定“NOT LOGGED INITIALLY”。例子,create table aa () NOT LOGGED INITIALLY ;場(chǎng)景一:CRT TELNET后臺(tái)方式關(guān)閉日志,需兩步完成:第一步,將以下腳本在數(shù)據(jù)庫(kù)主機(jī)(如,90)上 保存為 xxxx.db2 文件update command options using c off; connect to cqods user ? using ?;ALTER
27、 TABLE tbowner.aaa ACTIVATE NOT LOGGED INITIALLY;insert into tbowner.aaa select b.* from tbowner.bbb b;commit;terminate;第二步,運(yùn)行以下命令,執(zhí)行以上腳本文件:nohup db2 -tvf xxxx.db2 > xxxx.log &場(chǎng)景二:TCL程序中關(guān)閉日志:通過(guò)傳遞關(guān)閉日志參數(shù)實(shí)現(xiàn),例如:ds_chn_prd_serv_02_ms.tcl程序中set entity_count1 f_handle_sql $sqlBuff1 $ptemp_table_01 &
28、quot;Y"場(chǎng)景三:RAPID SQL工具中關(guān)閉日志:該工具沒(méi)得辦法實(shí)現(xiàn)關(guān)閉日志,切忌。7. LOAD過(guò)程中如何查看入庫(kù)的進(jìn)展?若發(fā)現(xiàn)異常、終止,必須立即執(zhí)行的語(yǔ)句是什么?如何清除表的LOAD狀態(tài)?問(wèn)題一:在LODD過(guò)程中,請(qǐng)及時(shí)查看load狀態(tài):db2 connect to dbname user username using passwddb2 load query table tbowner.FX_COMM_SERV_201101_01問(wèn)題二:若通過(guò)上面語(yǔ)句看到有異常情況,請(qǐng)立刻終止裝載數(shù)據(jù),并務(wù)必立即執(zhí)行以下語(yǔ)句:db2 load CLIENT from /dev/null
29、 of del terminate into TBOWNER.FX_COMM_SERV_201101_01問(wèn)題三:若LOAD過(guò)程中異常終止后,表會(huì)因?yàn)槿蕴幱贚ODA狀態(tài)而無(wú)法訪問(wèn),也是通過(guò)運(yùn)行問(wèn)題二的語(yǔ)句來(lái)清除LODA狀態(tài)。8. 為什么需要及時(shí)發(fā)現(xiàn)和處理SQL運(yùn)行中的性能異常?如何判定SQL運(yùn)行為性能異常?如何殺掉性能異常的SQL?分析和優(yōu)化性能異常SQL的方法有哪些?問(wèn)題一:SQL運(yùn)行過(guò)程中,如果出現(xiàn)性能異常,1)不僅可能導(dǎo)致該SQL一直無(wú)法成功完成;2)而且會(huì)直接影響整個(gè)數(shù)據(jù)庫(kù)的運(yùn)行性能;3)同時(shí),還會(huì)導(dǎo)致對(duì)相應(yīng)的表長(zhǎng)期鎖死,從而影響鎖死表對(duì)應(yīng)的日帳、月帳穩(wěn)定性。所以,需要及時(shí)發(fā)現(xiàn)、處理性
30、能異常的SQL。其中,處理步驟就是,首先,殺掉該SQL;然后,分析和優(yōu)化SQL。問(wèn)題二:運(yùn)行時(shí)長(zhǎng)已較平時(shí)多2倍以上,但仍然無(wú)法完成:例如,平時(shí)只需幾分鐘,但是,本次耗時(shí)30分鐘以上仍然無(wú)法完成。問(wèn)題三:立即拿起你的電話,聯(lián)系超級(jí)系統(tǒng)管理員,只有此角色用戶才有權(quán)限處理:目前為,管運(yùn)部 ();或亞聯(lián) ()問(wèn)題四:由于引起性能下降的因素很多,所以,分析和優(yōu)化性能異常SQL是一個(gè)復(fù)雜、循序漸進(jìn)的過(guò)程,需要逐步積累和理解數(shù)據(jù)庫(kù)運(yùn)行過(guò)程的原理。以下列舉幾個(gè)常用的方法,1)查看對(duì)應(yīng)的表是否存在節(jié)點(diǎn)偏移:詳見(jiàn)第4點(diǎn);2)查看對(duì)應(yīng)的表是否及時(shí)進(jìn)行了統(tǒng)計(jì)更新:詳見(jiàn)第13點(diǎn)、第18點(diǎn);3)查看對(duì)應(yīng)的執(zhí)行計(jì)劃是否合理
31、:詳見(jiàn)第2點(diǎn);4)查看相關(guān)大表是否進(jìn)行了壓縮:詳見(jiàn)第13點(diǎn)、第15點(diǎn);5)觀察數(shù)據(jù)庫(kù)主機(jī)當(dāng)前的運(yùn)行性能:詳見(jiàn)第30點(diǎn);6)對(duì)復(fù)雜SQL進(jìn)行拆分等方式優(yōu)化。9. 怎樣查看ODS或EDA的數(shù)據(jù)庫(kù)空間使用情況?該信息多久更新一次?其中,TBSP_FREE_PAGES、KEEP、PER這三個(gè)字段的含義是什么?若某個(gè)表空間緊張(告警),對(duì)應(yīng)的處理方法和步驟有哪些?問(wèn)題一:查看ODS或EDA的當(dāng)前表空間使用情況:select value(substr(TBSP_NAME,1,12),'ALL') TBSPNAME,value(substr(char(DBPARTITIONNUM),1,6)
32、,'ALL') DBNUM,sum(TBSP_CURRENT_SIZE)/1024/1024/1024 "TBSP_CURRENT_SIZE(GB)",sum(TBSP_TOTAL_PAGES) TBSP_TOTAL_PAGES,sum(TBSP_USABLE_PAGES) TBSP_USABLE_PAGES,sum(TBSP_USED_PAGES) TBSP_USED_PAGES,sum(TBSP_FREE_PAGES) TBSP_FREE_PAGES,decimal(decimal(sum(TBSP_USABLE_PAGES)-sum(TBSP_USED
33、_PAGES)-sum(TBSP_FREE_PAGES),12,2)/sum(TBSP_USABLE_PAGES)*100,4,2) keep,decimal(decimal(sum(TBSP_USED_PAGES)/decimal(sum(TBSP_USABLE_PAGES),4,2)*100 PERfrom db2inst1.check_ods_tbs_moniwhere TBSP_NAME not in ('SYSCATSPACE','TEMPSPACE1','STMP32K','STMP32K_02','SYSTO
34、OLSPACE','STMP32K_03','SYSTOOLSTMPSPACE','TBS_DEFAULT','TBS_TEMP')and INSERT_TIME = (select max(INSERT_TIME) from db2inst1.check_ods_tbs_moni)group by grouping sets(substr(TBSP_NAME,1,12),DBPARTITIONNUM),substr(TBSP_NAME,1,12),()order by value(substr(TBSP_NAME,1,1
35、2),'ALL'),value(char(DBPARTITIONNUM),'ALL');問(wèn)題二:該表的數(shù)據(jù)更新頻率為:5分鐘,但凌晨0:007:00期間,由于出賬不更新。問(wèn)題三:TBSP_FREE_PAGES、KEEP、PER分別表示:剩余頁(yè)面數(shù)、未釋放的空間%、空間使用率%;也就是說(shuō):若TBSP_FREE_PAGES為0,即表示完全無(wú)可用空間了;KEEP+PER即為綜合了釋放因素后的實(shí)際使用占比。問(wèn)題四:若某個(gè)表空間緊張,對(duì)應(yīng)的壓縮、清理步驟:1、看是否存在現(xiàn)成的未壓縮的大表;select owner,definer,tabname,CARD ROWS,FPA
36、GES,tbspace,STATS_TIME,CREATE_TIME,COMPRESSION,AVGROWCOMPRESSIONRATIO AVG from syscat.tables where tbspace ='TBS_ST_01' and FPAGES > 10000 and AVGROWCOMPRESSIONRATIO <1若存在,則進(jìn)行壓縮和統(tǒng)計(jì)更新,語(yǔ)句如下,select order_id,tabname,deal_sql from (select 1 order_id,tabname, 'reorg table '|rtrim(own
37、er)|'.'|rtrim(tabname)|' resetdictionary;' deal_sql from syscat.tables where tbspace ='TBS_BB_01' and FPAGES > 10000 and AVGROWCOMPRESSIONRATIO<1 and tabname not like '%TEMP%'union allselect 2 order_id,tabname, 'runstats on table '|rtrim(owner)|'.
38、9;|rtrim(tabname)|' allow write access tablesample system (10);' deal_sql from syscat.tables where tbspace ='TBS_BB_01' and FPAGES > 10000 and AVGROWCOMPRESSIONRATIO<1 and tabname not like '%TEMP%') torder by 2,1;2、看是否主要由于節(jié)點(diǎn)偏移導(dǎo)致,若是(標(biāo)準(zhǔn):最大偏移達(dá)到7%),則查找偏移的表;詳見(jiàn)第28個(gè)要點(diǎn)3、看日套表和月套
39、表是否在該空間部署了太多的表:可以減少套表在該空間的數(shù)量具體的套表部署空間情況詳見(jiàn)如下,(ODS)FTP:75 odsrun/home/odsrun/aiins/auto|days_tablist.cfg(EDA)FTP:75 dw/home/dw/aiins/etc|days_tablist.cfg4、看在近期是否存在非法建表的情況(臨時(shí)統(tǒng)計(jì)、新功能開(kāi)發(fā));select owner,definer,tabname,CARD ROWS,FPAGES,tbspace,STATS_TIME,CREATE_TIME,COMPRESSION,AVGROWCOMPRE
40、SSIONRATIO AVG from syscat.tables where tbspace ='TBS_ST_01' and date(CREATE_TIME)>'2012-5-1'5、進(jìn)行全表的10%抽樣統(tǒng)計(jì)更新,查看是否存在隱藏的未壓縮的大表;select 'runstats on table '|rtrim(owner)|'.'|rtrim(tabname)|' allow write access tablesample system (10);' from syscat.tables where
41、 tbspace ='TBS_ST_01' AND (STATS_TIME is null or FPAGES < 1000)6、查看是否存在較大的臨時(shí)表,若存在,則先清空后,再重建臨時(shí)表到其他表空間;select owner,definer,tabname,CARD ROWS,FPAGES,tbspace,STATS_TIME,CREATE_TIME,COMPRESSION,AVGROWCOMPRESSIONRATIO AVG from syscat.tables where tbspace ='TBS_ST_01' and tabname like &
42、#39;PTEMP%'10. 建表時(shí),為什么必須指定表空間?其中,“報(bào)表、開(kāi)發(fā)、臨時(shí)性統(tǒng)計(jì)(即,除通過(guò)版本正式上線外)”人員建表時(shí),必須分別放入三個(gè)專用的空間,它們的名字分別是什么?因?yàn)槿舨恢付ū砜臻g,ODS就會(huì)把數(shù)據(jù)默認(rèn)放入“TBS_DIM”中,直接導(dǎo)致生產(chǎn)事故。專用表空間(報(bào)表、開(kāi)發(fā)、臨時(shí)統(tǒng)計(jì))的名稱分別是:TBS_BB_01;TBS_KF_01;TBS_TJ_01。涉及此類應(yīng)用的人必須放入專用表空間,不得亂放,也不得忘記指定表空間。例子,create table aa () IN TBS_TJ_01 ;11. DROP或DELETE全表數(shù)據(jù)前,必須先執(zhí)行什么語(yǔ)句才能釋放空間?為什
43、么部分命令將表的數(shù)據(jù)刪除或壓縮后,數(shù)據(jù)庫(kù)的空間不釋放?問(wèn)題一:在執(zhí)行DROP或DELETE全表數(shù)據(jù)前,請(qǐng)務(wù)必先執(zhí)行可立即釋放表空間的清空表語(yǔ)句,語(yǔ)法:alter table xxxx activate not logged initially with empty table;問(wèn)題二:因?yàn)镈ROP/DELETE/REORG不會(huì)立即釋放數(shù)據(jù)庫(kù)空間,這些命令要在該空間的所有數(shù)據(jù)庫(kù)鏈接同時(shí)斷開(kāi)后才能釋放。12. 為什么用LIKE、AS命令建表時(shí),容易發(fā)生節(jié)點(diǎn)空間偏移,還把TBS_DIM表空間給漲爆了?應(yīng)該如何避免?以下兩種方法均可快速創(chuàng)建表,但是,他無(wú)法繼承源表的partitioning key 和
44、 表空間等信息,因此,很危險(xiǎn):create table MAP_ACCT_ITEM_TYPE_ID4_MULTI_bak_20110602 like MAP_ACCT_ITEM_TYPE_ID4_MULTI;或者create table MAP_ACCT_ITEM_TYPE_ID4_MULTI_bak_20110602 as (select ACCT_ITEM_TYPE_ID4,ACCT_ITEM_TYPE_DESC4,ACCT_ITEM_TYPE_MKTID3 from MAP_ACCT_ITEM_TYPE_ID4_MULTI) with no data;為此,需務(wù)必在以上SQL語(yǔ)句中補(bǔ)充相
45、關(guān)的表空間、分區(qū)鍵等信息。例如,create table MAP_ACCT_ITEM_TYPE_ID4_MULTI_bak_20110602 like MAP_ACCT_ITEM_TYPE_ID4_MULTIin tbs_tj_01partitioning key(ACCT_ITEM_TYPE_ID4) NOT LOGGED INITIALLY;13. 系統(tǒng)表syscat.tables的以下常用字段的含義是什么?若要查到某個(gè)表的這些系統(tǒng)字段信息,需要先運(yùn)行什么命令?其中,常用的系統(tǒng)表查看語(yǔ)句和字段:select owner,definer,tabname,CARD ROWS,FPAGES,tb
46、space,STATS_TIME,CREATE_TIME,COMPRESSION,AVGROWCOMPRESSIONRATIO AVG from syscat.tables where tabname like 'DS%201101。問(wèn)題一:常用字段:CARD:行數(shù)(數(shù)量級(jí)無(wú)問(wèn)題,不完全精確);FPAGES:實(shí)際占用頁(yè)面數(shù);tbspace :表空間,若為空,則為分區(qū)表,詳見(jiàn)“分區(qū)表”問(wèn)答;STATS_TIME:runstats統(tǒng)計(jì)更新該表的時(shí)間;CREATE_TIME:表的創(chuàng)建時(shí)間; COMPRESSION和AVGROWCOMPRESSIONRATIO:詳見(jiàn)“數(shù)據(jù)重組(壓縮)reorg
47、”等問(wèn)答。問(wèn)題二:查看該表相關(guān)字段信息前,需要先運(yùn)行runstats命令,語(yǔ)法詳見(jiàn)runstats的問(wèn)答。14. 為什么要做表的數(shù)據(jù)重組(壓縮)reorg?ODS的哪些情況下需要盡快執(zhí)行reorg?如何查看表的實(shí)際壓縮比例?問(wèn)題一:reorg的作用:1)空間方面,壓縮表所占用的存儲(chǔ),2)性能方面,降低SELECT該表所使用的IO量,從而提升取數(shù)性能。問(wèn)題二:ODS需要盡快執(zhí)行REORG的情況:1)多次訪問(wèn)的表:例如,前臺(tái)經(jīng)常訪問(wèn)的結(jié)果表;后臺(tái)處理中,經(jīng)常使用的表2)數(shù)據(jù)變動(dòng)量較大的表:例如,月初全量修復(fù)的表;每個(gè)賬期插入大量數(shù)據(jù)的ST表3)數(shù)據(jù)冗余量較大寬表:特別是有中文字段冗余的表問(wèn)題三:系
48、統(tǒng)表syscat.tables的字段AVGROWCOMPRESSIONRATIO:實(shí)際壓縮比例15. 表數(shù)據(jù)重組(壓縮)reorg命令的兩種常用格式?為什么在RAPID SQL工具中執(zhí)行報(bào)錯(cuò)?格式一:db2 "reorg table TBOWNER.DM_CHN_CUST_GRP_20100423 resetdictionary"(resetdictionary為強(qiáng)制新字典參數(shù),可選)格式二:db2 "reorg table TBOWNER.DS_ACT_ACCT_ITEM_AGG_201005 allow read access " (建議前臺(tái)表使用此
49、格式)為什么在RAPID SQL工具中執(zhí)行報(bào)錯(cuò):因?yàn)閞eorg命令的執(zhí)行需要通過(guò)CRT TELENET工具16. 為什么有些表執(zhí)行reorg命令后,實(shí)際壓縮比例還是0,是不是需先確保一個(gè)屬性?如何在建表語(yǔ)句中指定該屬性?若建表中未指定,如何調(diào)整?如何查看某個(gè)表的該屬性?問(wèn)題一:reorg命令前:需確保該表的COMPRESS YES,否則,壓縮不起作用。問(wèn)題二:建表語(yǔ)句中:CREATE TABLE table_name( . . .)COMPRESS YES;問(wèn)題三:建表后的調(diào)整:ALTER TABLE tablename COMPRESS YES;問(wèn)題四:系統(tǒng)表syscat.tables的字段
50、COMPRESSION:是否可壓縮(R為可壓縮)17. 為什么要更新表的統(tǒng)計(jì)信息runstats?哪些情況下需要對(duì)表做runstats?問(wèn)題一:作用:用來(lái)更新數(shù)據(jù)庫(kù)對(duì)象的狀態(tài)信息(例如,系統(tǒng)表syscat.tables),這對(duì)優(yōu)化器生成最優(yōu)的執(zhí)行計(jì)劃至關(guān)重要,也便于查看該表的常用信息。問(wèn)題二:在以下三種情況下,必須盡快執(zhí)行該表的runstats命令:1)在對(duì)table進(jìn)行reorg后:若在reorg后不執(zhí)行runstats,則只起到對(duì)空間的壓縮作用,而難以通過(guò)降低IO來(lái)提升性能;2)當(dāng)表中的數(shù)據(jù)發(fā)生了比較大(20%以上)變化后;3)在給表創(chuàng)建一個(gè)index后。18. runstats命令的兩種
51、常用格式?為什么在RAPID SQL工具中執(zhí)行報(bào)錯(cuò)?其中,哪種情況建議采用抽樣10%的統(tǒng)計(jì)信息更新方式?格式一:對(duì)全表做統(tǒng)計(jì)更新:db2 " runstats on table tbowner.ST_CUST_INTEGRAL_ODS_GRADE_201002 "格式二:抽樣10%做統(tǒng)計(jì)更新:db2 "runstats on table tbowner.DS_ACT_ACCT_ITEM_AGG_201005 allow write access tablesample system (10) "問(wèn)題二:runstats命令的執(zhí)行需要通過(guò)CRT TELEN
52、ET工具問(wèn)題三:抽樣統(tǒng)計(jì)更新的適合場(chǎng)景:大表、且僅需大致估算系統(tǒng)表的信息,因其運(yùn)行效率比全表統(tǒng)計(jì)更新提升5倍以上。建議大表均采用此方法;若需提升運(yùn)行效率,且對(duì)統(tǒng)計(jì)數(shù)據(jù)準(zhǔn)確性要求不特別高,則建議全部均使用抽樣統(tǒng)計(jì)更新。19. 為什么在執(zhí)行SQL后需盡快斷開(kāi)數(shù)據(jù)庫(kù)連接?其中,RAPID SQL工具和CRT TELENET工具要如何才能真正的斷開(kāi)數(shù)據(jù)庫(kù)連接?為什么在使用“RAPID SQL工具”過(guò)程中,特別強(qiáng)調(diào)需及時(shí)斷開(kāi)連接或關(guān)閉工具?問(wèn)題一:ODS數(shù)據(jù)庫(kù)的最大并發(fā)連接數(shù)有限制,該連接會(huì)占用系統(tǒng)資源,為此,需及時(shí)斷開(kāi)數(shù)據(jù)庫(kù)連接。問(wèn)題二:RAPID SQL工具斷開(kāi)數(shù)據(jù)庫(kù)連接的方法,如下圖:請(qǐng)務(wù)必點(diǎn)擊左
53、上角Disconnect按鈕;或徹底關(guān)閉RAPID SQL工具客戶端。CRT TELENET工具斷開(kāi)數(shù)據(jù)庫(kù)連接的方法,如下圖:運(yùn)行 db2 terminate命令;或徹底關(guān)閉客戶端。問(wèn)題三:若不對(duì)RAPID SQL工具的數(shù)據(jù)庫(kù)連接進(jìn)行斷開(kāi),會(huì)導(dǎo)致EDA程序報(bào) “鎖等待超時(shí)”的生產(chǎn)故障:由于該工具提交的select語(yǔ)句會(huì)給對(duì)應(yīng)的表添加一把讀鎖,在該連接斷開(kāi)前將不會(huì)自動(dòng)釋放;若當(dāng)晚有程序需要對(duì)該表進(jìn)行更新,則會(huì)報(bào)“鎖等待超時(shí)”系統(tǒng)錯(cuò)誤。為此,使用RAPID SQL工具時(shí),務(wù)必隨時(shí)斷開(kāi)數(shù)據(jù)庫(kù)連接。20. 在調(diào)度系統(tǒng)建流程的過(guò)程中,為什么必須建立完整的流程依賴?完整依賴的最小直觀判斷標(biāo)準(zhǔn)是什么?問(wèn)題一
54、:調(diào)度系統(tǒng)的流程依賴有2個(gè)方面的重要作用:1)在調(diào)度運(yùn)行中,保障流程運(yùn)行順序的準(zhǔn)確性,確保數(shù)據(jù)的完整性和質(zhì)量:若兩個(gè)程序?qū)?yīng)的調(diào)度未建依賴,即使通過(guò)流程的啟動(dòng)時(shí)間進(jìn)行了先后順序的區(qū)分,但是仍然存在這兩個(gè)調(diào)度同時(shí)運(yùn)行的隱患。為此,創(chuàng)建調(diào)度流程過(guò)程中,務(wù)必建立完整的依賴。2)在維護(hù)過(guò)程中,流程依賴是數(shù)據(jù)流的直觀展示,是重出賬和核查問(wèn)題的依據(jù):若依賴不完整,則直接影響重出賬數(shù)據(jù)質(zhì)量,同時(shí),降低問(wèn)題核查的效率。問(wèn)題二:除以下三種特殊情況外,所有流程都必須至少包括1個(gè)及以上依賴,絕不允許出現(xiàn)無(wú)依賴的裸流程:1)對(duì)源系統(tǒng)提供的接口文件進(jìn)行采集和入庫(kù)處理流程2)依賴于EDA前臺(tái)界面錄入的數(shù)據(jù)處理流程3)其他
55、特殊處理:如,準(zhǔn)實(shí)時(shí)任務(wù)、無(wú)需依賴其他數(shù)據(jù)的定時(shí)處理21. 為什么營(yíng)維支撐系統(tǒng)的前端表要使用分區(qū)表?建表語(yǔ)法是什么?判斷是不是分區(qū)表的方法?如果發(fā)現(xiàn)分區(qū)表壞了后,咋個(gè)辦?問(wèn)題一:分區(qū)表的作用:相當(dāng)于按分區(qū)鍵分為多個(gè)表,將數(shù)據(jù)分布到多個(gè)表空間,從而提高IO并行。問(wèn)題二:建表語(yǔ)法:CREATE TABLE TBOWNER.DS_CHN_PRD_SERV_COM_03_20100821 LIKE MODEL.DS_CHN_PRD_SERV_COM_03_YYYYMMDD IN TBS_DM_04,TBS_DM_03,TBS_DM_02 INDEX IN TBS_INDEX_01 COMPRESS Y
56、ES DISTRIBUTE BY HASH (GRID_ID) NOT LOGGED INITIALLY PARTITION BY RANGE(AREA_ID) ( STARTING MINVALUE, STARTING 12 ENDING 70 EVERY 1 , ENDING MAXVALUE)問(wèn)題三:判斷是否為分區(qū)表的方法:系統(tǒng)表syscat.tables的字段tbspace:為空,則為分區(qū)表問(wèn)題四:首先,提取分區(qū)表建表腳本:例如,ods_db1 /home/odsrun/gj $ db2look_tbowner.ksh -t DS_CHN_ACT_SERV_ACCT_ITEM_MKT_
57、01_201103 ;然后,執(zhí)行提取出來(lái)的腳本即可。特別說(shuō)明:通過(guò)“Quest Central”工具無(wú)法提取腳本或所在空間 。22. 為什么ODS大部分情況下,使用表的鎖(LOCK)為“表級(jí)”?另外,“行級(jí)”鎖用于那些場(chǎng)合?指定表的鎖(LOCK)類型的語(yǔ)句?表級(jí):在EDA大部分情況下使用表級(jí),因?yàn)?,一是多?shù)表的數(shù)據(jù)量比較龐大,如果行級(jí)鎖會(huì)消耗系統(tǒng)過(guò)多的資源,造成數(shù)據(jù)庫(kù)性能下降,二是數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)的不需要支持很高的并發(fā)行級(jí):如果是前臺(tái)頻繁更新的表,則務(wù)必改為行級(jí)LOCKSIZE ROW。語(yǔ)句:ALTER TABLE DEV.TJ07_YN_SERV_ACC_NBR_REL_200708 LOCKS
58、IZE TABLE;23. 在ODS中,為什么大部分表不需要建索引?在哪些場(chǎng)合才有必要建索引? 哪些字段不適合建索引?問(wèn)題一:因?yàn)槊總€(gè)表均要指定分區(qū)鍵(PARTITIONING KEY),若盡量將需要進(jìn)行全表掃描的字段(用于查詢條件、或與其他表關(guān)聯(lián)的字段)納入分區(qū)鍵中,便可以不用額外建索引了。問(wèn)題二:表的分區(qū)鍵無(wú)法囊括的字段,且需要用于作為查詢條件、或與其他表關(guān)聯(lián)的字段。問(wèn)題三:不適合建索引的字段: 分區(qū)鍵中的字段;數(shù)據(jù)值特別少的字段,如,狀態(tài)、客戶類型等。24. 表的APPEND ON 屬性是什么意思?如何設(shè)置這個(gè)屬性?APPEND ON 屬性含義:當(dāng)表中數(shù)據(jù)被delete刪除時(shí),空間并不會(huì)釋放,而是在該行原來(lái)的位置做個(gè)“DELETED”的標(biāo)志,表示該空間可以被重用。當(dāng)DB2執(zhí)行INSERT操作時(shí),會(huì)掃描整個(gè)表的空閑空間并將新行置入空槽。而如果我們啟用了append on特性,那么當(dāng)插入新行時(shí),DB2就不必搜索空槽再插入,而是直接插入到表的最后。這適合用于大批量追加 插入的一些ST表。如果啟用這種特性,需考慮及
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 現(xiàn)場(chǎng)監(jiān)測(cè)工作管理制度
- 班級(jí)體育制度管理制度
- 班級(jí)活動(dòng)怎樣管理制度
- 班級(jí)電腦集中管理制度
- 公墓開(kāi)業(yè)活動(dòng)方案
- qq群規(guī)管理制度
- 東芝公寓管理制度
- 個(gè)人護(hù)具管理制度
- 中國(guó)獸藥管理制度
- 中學(xué)外教管理制度
- 湖南省長(zhǎng)沙市2024年七年級(jí)下學(xué)期數(shù)學(xué)期末考試試題附答案
- 消化道穿孔患者的護(hù)理課件
- 作物栽培學(xué)智慧樹知到期末考試答案章節(jié)答案2024年中國(guó)農(nóng)業(yè)大學(xué)
- 汽車修理廠應(yīng)急預(yù)案汽修廠安全生產(chǎn)事故應(yīng)急救援綜合預(yù)案2019-2020新標(biāo)準(zhǔn)完整版實(shí)施文件
- 建筑智能化系統(tǒng)工程掛靠協(xié)議
- 司法鑒定的奧秘智慧樹知到期末考試答案2024年
- 2024春期國(guó)開(kāi)電大專本科《教育學(xué)》在線形考 (形考論壇4)試題及答案
- MOOC 高速鐵路運(yùn)營(yíng)與維護(hù)-西南交通大學(xué) 中國(guó)大學(xué)慕課答案
- 11-輪藻植物門課件
- (2024年)健康評(píng)估教學(xué)教案心電圖檢查教案
- 方法模型:展開(kāi)圖、還原立體圖形
評(píng)論
0/150
提交評(píng)論