锘??xml version="1.0" encoding="utf-8" standalone="yes"?>
鏁版嵁妯″瀷鏄鐜板疄涓栫晫榪涜鎶借薄鐨勫伐鍏鳳紝鐢ㄤ簬鎻忚堪鐜板疄涓栫晫鐨勬暟鎹佹暟鎹仈緋匯佹暟鎹涔夊拰鏁版嵁綰︽潫絳夋柟闈㈠唴瀹廣傛暟鎹ā鍨嬪垎鎴愭蹇墊ā鍨嬪拰緇撴瀯妯″瀷涓ゅぇ綾匯傚墠鑰呯殑浠h〃鏄疄浣撹仈緋繪ā鍨嬶紝鍚庤呯殑浠h〃鏄眰嬈°佺綉鐘躲佸叧緋誨拰闈㈠悜瀵硅薄妯″瀷銆傚叧緋繪ā鍨嬫槸褰撲粖鐨勪富嫻佹ā鍨嬶紝闈㈠悜瀵硅薄妯″瀷鏄粖鍚庡彂灞曠殑鏂瑰悜銆?br />
鏁版嵁搴撴槸瀛樺偍鍦ㄤ竴璧烽泦涓鐞嗙殑鐩稿叧鏁版嵁鐨勯泦鍚堛傛暟鎹簱鐨勪綋緋葷粨鏋勬槸瀵規(guī)暟鎹殑涓変釜鎶借薄綰у埆銆傚畠鎶婃暟鎹殑鍏蜂綋緇勭粐鐣欑粰DBMS鍘誨仛錛岀敤鎴峰彧闇鎶借薄鍦板鐞嗛昏緫鏁版嵁錛岃屼笉蹇呭叧蹇?jī)鏁版嵁鍦ㄨ绠楁溵Z腑鐨勫瓨鍌紝鍑忚交浜?jiǎn)鐢ㄦ埛鋴社敤绯痪l熺殑璐熸媴銆傜敱浜庝笁綰х粨鏋勪箣闂村線寰宸埆寰堝ぇ錛屽瓨鍦ㄧ潃涓ょ駭鏄犺薄錛屽洜姝や嬌DBS鍏鋒湁杈冮珮鐨勬暟鎹嫭绔嬫э細(xì)鐗╃悊鏁版嵁鐙珛鎬у拰閫昏緫鏁版嵁鐙珛鎬с?br />
鏁版嵁鐙珛鎬ф槸鎸囧湪鏌愪釜灞傛涓婁慨鏀規(guī)ā寮忚屼笉褰卞搷杈冮珮?shù)竴灞傛ā寮忕殑鑳藉姏銆?br />DBMS鏄綅浜庣敤鎴蜂笌OS涔嬮棿鐨勪竴灞傛暟鎹鐞嗚蔣浠躲傛暟鎹簱璇█鍒嗘垚DDL鍜孌ML涓ょ被銆侱BMS涓昏鐢辨煡璇㈠鐞嗗櫒鍜屽瓨鍌ㄧ鐞嗗櫒涓ゅぇ閮ㄥ垎緇勬垚銆?br />DBS鏄寘鍚獶B鍜孌BMS鐨勮綆楁満緋葷粺銆侱BS鐨勫叏灞緇撴瀯浣撶幇浜?jiǎn)DBS鐨勬ā鍧楀姛鑳界粨鏋勩?br />
鏁版嵁搴撲笁綰т綋緋葷粨鏋勶細(xì)
鏁版嵁搴撲綋緋葷粨鏋勪簲瑕佺礌:
1銆佹蹇墊ā寮忔槸鏁版嵁搴撲腑鍏ㄩ儴鏁版嵁鐨勬暣浣撻昏緫緇撴瀯鐨勬弿榪般?br />2銆佸妯″紡鏄敤鎴峰啓鏁版嵁搴撶郴緇熺殑鎺ュ彛錛屾槸鐢ㄦ埛鐢ㄥ埌閭i儴鍒嗘暟鎹殑鎻忚堪銆?br />3銆佸唴妯″紡鏄暟鎹簱鍦ㄧ墿鐞嗗瓨鍌ㄦ柟闈㈢殑鎻忚堪錛屽畾涔夊唴閮ㄨ褰曠被鍨嬨佺儲(chǔ)寮曞拰鏂囦歡鐨勭粍緇囨柟寮忥紝浠ュ強(qiáng)鏁版嵁鎺у埗鏂歸潰鐨勭粏鑺傘?br />4銆佹ā寮忥紡鍐呮ā寮忔槧璞″瓨鍦ㄤ簬姒傚康綰у拰鍐呴儴綰т箣闂達(dá)紝鐢ㄤ簬瀹氫箟姒傚康妯″紡鍜屽唴妯″紡涔嬮棿鐨勫搴旀с?br />5銆佸妯″紡錛忔ā寮忔槧璞″瓨鍦ㄤ簬澶栭儴綰у拰姒傚康綰т箣闂達(dá)紝鐢ㄤ簬瀹氫箟澶栨ā寮忓拰姒傚康妯″紡涔嬮棿鐨勫搴旀с?br />
聽(tīng)DBMS鐨勬ā鍧楃粍鎴愶細(xì)
鏌ヨ澶勭悊鍣ㄦ湁鍥涗釜涓昏鎴愬垎錛欴DL緙栬瘧鍣紝DML緙栬瘧鍣紝宓屽叆寮廌ML鐨勯緙栬瘧鍣ㄥ強(qiáng)鏌ヨ榪愯鏍稿績(jī)紼嬪簭銆?br />瀛樺偍綆$悊鍣ㄦ湁鍥涗釜涓昏鎴愬垎錛氭潈闄愬拰瀹屾暣鎬х鐞嗗櫒錛屼簨鍔$鐞嗗櫒錛屾枃浠剁鐞嗗櫒鍙?qiáng)缂撳啿鍖航帯鐞嗗櫒銆?br />
DBS鐨勫叏灞緇撴瀯錛?br />
DBS緇撴瀯鐨勫垎綾伙細(xì)
闆嗕腑寮廌BS錛坈entralized DBS錛?br />瀹㈡埛鏈猴紡鏈嶅姟鍣ㄥ紡DBS錛坈lient/server DBS錛岃涓篊/S DBS錛?br />騫惰寮廌BS錛坧arallel DBS錛?br />鍒嗗竷寮廌BS錛坉istributed DBS錛?br />
DBA鐨勪富瑕佽亴璐f湁浠ヤ笅鍏偣錛?/strong>
1銆佸畾涔夋ā寮忋?br />2銆佸畾涔夊唴妯″紡銆?br />3銆佷笌鐢ㄦ埛鐨勮仈緇溿傚寘鎷畾涔夊妯″紡銆佸簲鐢ㄧ▼搴忕殑璁捐銆佹彁渚涙妧鏈煿璁瓑涓撲笟鏈嶅姟銆?br />4銆佸畾涔夊畨鍏ㄦц鍒欙紝瀵圭敤鎴瘋闂暟鎹簱鐨勬巿鏉冦?br />5銆佸畾涔夊畬鏁存ц鍒欙紝鐩戠潱鏁版嵁搴撶殑榪愯銆?br />6銆佹暟鎹簱鐨勮漿鍌ㄤ笌鎭㈠宸ヤ綔銆?img src ="http://m.tkk7.com/1948asd/aggbug/270068.html" width = "1" height = "1" />
]]>
緋葷粺鏉冮檺錛?br />grant create session to li;//涓虹敤鎴鋒巿浜堣闂暟鎹簱鐨勬潈闄愩?br />grant create table to li;//涓虹敤鎴鋒巿浜堝垱寤烘暟鎹簱鐨勬潈闄愩?br />grant unlimited tablespace //涓虹敤鎴鋒巿浜堟病鏈変笂闄愮殑紜壇璁塊棶琛ㄧ┖闂寸殑鏉冮檺銆?br />revoke table from li;//;//鍒犻櫎鐢ㄦ埛鎺堜簣鍒涘緩鏁版嵁搴撶殑鏉冮檺銆?br />revoke unlimited tablespace //鍒犻櫎鐢ㄦ埛鎺堜簣娌℃湁涓婇檺鐨勭‘鑹闂〃絀洪棿鐨勬潈闄愩?br />grant create session to public //鎵鏈夐兘鏈?br />鏁版嵁瀛楀吀錛?br />select * from user_sys_privs;//褰撳墠鐢ㄦ埛鎷ユ湁鏉冮檺
--------------------------------------------------------------------------------------------
瀵硅薄鏉冮檺錛氳皝鎷ユ湁璋佸氨鍙互鎺堟潈
grant select on mytab to lisi ;//璁﹍isi 鏈夎闂甽i鎷ユ湁鐨刴ytab鐨勬煡璇㈡潈闄?br />
grant insert on mytab to lisi ;//璁﹍isi 鏈夎闂甽i鎷ユ湁鐨刴ytab鐨勬彃鍏ユ潈闄?br />
grant all on mytab to lisi;//鎵鏈夋潈闄愯祴浜?lisi;
鏁版嵁瀛楀吀錛?br />select * from user_tab_privs;
grant create session to public //鎵鏈?br />
瀵硅薄鏉冮檺鎺у埗鍒板垪
grant update(name)聽(tīng) on mytab to lisi;//聽(tīng) 鎺堜簣lisi鍙兘鏇存柊name灞炴?涓哄瓧孌靛垎閰嶆潈闄愶細(xì)聽(tīng)鍙兘鏄彃鍏ュ拰鏇存柊)
鍦ㄨ繃鍘葷殑鍗佸勾涓紝 Oracle 宸茬粡鎴愪負(fù)涓栫晫涓婃渶涓撲笟鐨勬暟鎹簱涔嬩竴銆傚浜?IT 涓撳鏉ヨ錛屽氨鏄紜繚鍒╃敤 Oracle 鐨勫己澶х壒鎬ф潵鎻愰珮?shù)粬浠叕鍙哥殑鐢熶骇鍔涖傛渶鏈夋晥鐨勬柟娉曚箣涓鏄氳繃 Oracle 璋冧紭銆傚畠鏈夊ぇ閲忕殑璋冩暣鍙傛暟鍜屾妧鏈潵鏀硅繘浣犵殑 Oracle 鏁版嵁搴撶殑鎬ц兘銆?
Oracle 璋冧紭鏄竴涓鏉傜殑涓婚銆傚叧浜庤皟浼樺彲浠ュ啓鏁存暣涓鏈功錛屼笉榪囷紝涓轟簡(jiǎn)鏀瑰杽 Oracle 鏁版嵁搴撶殑鎬ц兘錛屾湁涓浜涘熀鏈殑姒傚康鏄瘡涓?Oracle DBA 閮藉簲璇ラ伒浠庣殑銆?
銆銆 鍦ㄨ繖綃囩畝浠嬩腑錛屾垜浠皢綆瑕佸湴浠嬬粛浠ヤ笅鐨?Oracle 涓婚錛?
銆銆-- 澶栭儴璋冩暣錛氭垜浠簲璇ヨ浣?Oracle 騫朵笉鏄崟鐙繍琛岀殑銆傚洜姝ゆ垜浠皢鏌ョ湅涓涓嬮氳繃璋冩暣 Oracle 鏈嶅姟鍣ㄤ互寰楀埌楂樼殑鎬ц兘銆?
銆銆--Row re-sequencing 浠ュ噺灝戠鐩?I/O 錛氭垜浠簲璇ユ噦寰?Oracle 璋冧紭鏈閲嶈鐨勭洰鏍囨槸鍑忓皯 I/O 銆?
銆銆--Oracle SQL 璋冩暣銆?Oracle SQL 璋冩暣鏄?Oracle 璋冩暣涓渶閲嶈鐨勯鍩熶箣涓錛屽彧瑕侀氳繃涓浜涚畝鍗曠殑 SQL 璋冧紭瑙勫垯灝卞彲浠ュぇ騫呭害鍦版彁鍗?SQL 璇彞鐨勬ц兘錛岃繖鏄竴鐐歸兘涓嶅鎬殑銆?
銆銆-- 璋冩暣 Oracle 鎺掑簭錛氭帓搴忓浜?Oracle 鎬ц兘涔熸槸鏈夊緢澶у獎(jiǎng)鍝嶇殑銆?
銆銆-- 璋冩暣 Oracle 鐨勭珵浜夛細(xì)琛ㄥ拰绱㈠紩鐨勫弬鏁拌緗浜?UPDATE 鍜?INSERT 鐨勬ц兘鏈夊緢澶х殑褰卞搷銆?
銆銆 鎴戜滑棣栧厛浠庤皟鏁?Oracle 澶栭儴鐨勭幆澧冨紑濮嬨傚鏋滃唴瀛樺拰 CPU 鐨勮祫婧愪笉瓚崇殑璇濓紝浠諱綍鐨?Oracle 璋冩暣閮芥槸娌℃湁甯姪鐨勩?
銆銆澶栭儴鐨勬ц兘闂
銆銆
銆銆Oracle 騫朵笉鏄崟鐙繍琛岀殑銆?Oracle 鏁版嵁搴撶殑鎬ц兘鍜屽閮ㄧ殑鐜鏈夊緢澶х殑鍏崇郴銆傝繖浜涘閮ㄧ殑鏉′歡鍖呮嫭鏈夛細(xì)
銆銆 錛?CPU--CPU 璧勬簮鐨勪笉瓚充護(hù)鏌ヨ鍙樻參銆傚綋鏌ヨ瓚呰繃浜?Oracle 鏈嶅姟鍣ㄧ殑 CPU 鎬ц兘鏃訛紝浣犵殑鏁版嵁搴撴ц兘灝卞彈鍒?CPU 鐨勯檺鍒躲?
銆銆 錛庡唴瀛?-- 鍙敤浜?Oralce 鐨勫唴瀛樻暟閲忎篃浼?xì)濯?jiǎng)鍝?SQL 鐨勬ц兘錛岀壒鍒槸鍦ㄦ暟鎹紦鍐插拰鍐呭瓨鎺掑簭鏂歸潰銆?
銆銆 錛庣綉緇?-- 澶ч噺鐨?Net8 閫氫俊浠?SQL 鐨勬ц兘鍙樻參銆?
銆銆 璁稿鏂版墜閮介敊璇殑璁や負(fù)搴旇棣栧厛璋冩暣 Oracle 鏁版嵁搴擄紝鑰屼笉鏄厛紜澶栭儴璧勬簮鏄惁瓚沖銆傚疄闄呬笂錛屽鏋滃閮ㄧ幆澧冨嚭鐜扮摱棰堬紝鍐嶅鐨?Oracle 璋冩暣閮芥槸娌℃湁甯姪鐨勩?
銆銆 鍦ㄦ鏌?Oracle 鐨勫閮ㄧ幆澧冩椂錛屾湁涓や釜鏂歸潰鏄渶瑕佹敞鎰忕殑錛?
銆銆1 銆佸綋榪愯闃熷垪鐨勬暟鐩秴榪囨湇鍔″櫒鐨?CPU 鏁伴噺鏃訛紝鏈嶅姟鍣ㄧ殑鎬ц兘灝變細(xì)鍙楀埌 CPU 鐨勯檺鍒躲傝ˉ鏁戠殑鏂規(guī)硶鏄負(fù)鏈嶅姟鍣ㄥ鍔犻澶栫殑 CPU 鎴栬呭叧闂渶瑕佸緢澶氬鐞嗚祫婧愮殑緇勪歡錛屼緥濡?Oracle Parallel Query 銆?
銆銆2 銆佸唴瀛樺垎欏點(diǎn)傚綋鍐呭瓨鍒嗛〉鏃訛紝鍐呭瓨瀹歸噺宸茬粡涓嶈凍錛岃屽唴瀛橀〉鏄笌紓佺洏?shù)笂鐨勪氦鎹㈠岠櫩涜浜や簰鐨勩傝ˉ鏁戠殑鏂規(guī)硶鏄鍔犳洿澶氱殑鍐呭瓨錛屽噺灝?Oracle SGA 鐨勫ぇ灝忥紝鎴栬呭叧闂?Oracle 鐨勫綰跨▼鏈嶅姟鍣ㄣ?
銆銆 鍙互浣跨敤鍚勭鏍囧噯鐨勬湇鍔″櫒宸ュ叿鏉ュ緱鍒版湇鍔″櫒鐨勭粺璁℃暟鎹紝渚嬪 vmstat,glance,top 鍜?sar 銆?DBA 鐨勭洰鏍囨槸紜繚鏁版嵁搴撴湇鍔″櫒鎷ユ湁瓚沖鐨?CPU 鍜屽唴瀛樿祫婧愭潵澶勭悊 Oracle 鐨勮姹傘?
銆銆 浠ヤ笅璁╂垜浠潵鐪嬩竴涓?Oracle 鐨?row-resequencing 鏄浣曡兘澶熸瀬澶у湴鍑忓皯紓佺洏 I/O 鐨勩?
銆銆Row-resequencing 錛堣鐨勯噸鏂版帓搴忥級(jí)
銆銆
銆銆灝辮薄鎴戜滑涓婇潰鎻愬埌鐨勶紝鏈夌粡楠岀殑 Oracle DBA 閮界煡閬?I/O 鏄搷搴旀椂闂寸殑鏈澶х粍鎴愰儴鍒嗐傚叾涓鐩?I/O 鐗瑰埆鍘夊錛屽洜涓哄綋 Oracle 鐢辯鐩樹(shù)笂鐨勪竴涓暟鎹枃浠跺緱鍒頒竴涓暟鎹潡鏃訛紝璇葷殑榪涚▼灝卞繀欏葷瓑寰呯墿鐞?I/O 鎿嶄綔瀹屾垚銆傜鐩樻搷浣滆姣旀暟鎹紦鍐叉參 10,000 鍊嶃傚洜姝わ紝濡傛灉鍙互浠?I/O 鏈灝忓寲錛屾垨鑰呭噺灝戠敱浜庣鐩樹(shù)笂鐨勬枃浠剁珵浜夎屽甫鏉ョ殑鐡墮錛屽氨鍙互澶уぇ鍦版敼鍠?Oracle 鏁版嵁搴撶殑鎬ц兘銆?
銆銆 濡傛灉緋葷粺鍝嶅簲寰堟參錛岄氳繃鍑忓皯紓佺洏 I/O 灝卞彲浠ユ湁涓涓緢蹇殑鏀瑰杽銆傚鏋滃湪涓涓簨鍔′腑閫氳繃鎸変竴瀹氱殑鑼冨洿鎼滅儲(chǔ) primary-key 绱㈠紩鏉ヨ闂〃錛岄偅涔堥噸鏂頒互 CTAS 鐨勬柟娉曠粍緇囪〃灝嗘槸浣犲噺灝?I/O 鐨勯瑕佺瓥鐣ャ傞氳繃鍦ㄧ墿鐞嗕笂灝嗚鎺掑簭涓哄拰 primary-key 绱㈠紩涓鏍風(fēng)殑欏哄簭錛屽氨鍙互鍔犲揩鑾峰緱鏁版嵁鐨勯熷害銆?
銆銆 灝辮薄紓佺洏鐨勮礋杞藉鉤琛′竴鏍鳳紝琛岀殑閲嶆柊鎺掑簭涔熸槸寰堢畝鍗曠殑錛岃屼笖涔熷緢蹇傞氳繃涓庡叾瀹冪殑 DBA 綆$悊鎶宸т竴璧蜂嬌鐢紝灝卞彲浠ュ湪楂?I/O 鐨勭郴緇熶腑澶уぇ鍦板噺灝戝搷搴旂殑鏃墮棿銆?
銆銆 鍦ㄩ珮瀹歸噺鐨勫湪綰夸簨鍔″鐞嗙幆澧冧腑錛?online transaction processing 錛?OLTP 錛夛紝鏁版嵁鏄敱涓涓?primary 绱㈠紩寰楀埌鐨勶紝閲嶆柊鎺掑簭琛ㄦ牸鐨勮灝卞彲浠ヤ護(hù)榪炵畫(huà)鍧楃殑欏哄簭鍜屽畠浠殑 primary 绱㈠紩涓鏍鳳紝榪欐牱灝卞彲浠ュ湪绱㈠紩椹卞姩鐨勮〃鏍兼煡璇腑錛屽噺灝戠墿鐞?I/O 騫朵笖鏀瑰杽鍝嶅簲鏃墮棿銆傝繖涓妧宸т粎鍦ㄥ簲鐢ㄩ夋嫨澶氳鐨勬椂鍊欐湁鐢紝鎴栬呭湪浣跨敤绱㈠紩鑼冨洿鎼滅儲(chǔ)鍜屽簲鐢ㄥ彂鍑哄涓煡璇㈡潵寰楀埌榪炵畫(huà)鐨?key 鏃舵湁鏁堛傚浜庨殢鏈虹殑鍞竴 primary-key 錛堜富閿級(jí)鐨勮闂皢涓嶄細(xì)鐢辮閲嶆柊鎺掑簭涓緱鍒板ソ澶勩?
銆銆 璁╂垜浠湅涓涓嬪畠鏄浣曞伐浣滅殑銆傝冭檻浠ヤ笅鐨勪竴涓?SQL 鐨勬煡璇紝瀹冧嬌鐢ㄤ竴涓儲(chǔ)寮曟潵寰楀埌 100 琛岋細(xì)
selectsalaryfromemployeewherelast_name like 'B%';
榪欎釜鏌ヨ灝嗕細(xì)浣跨敤 last_name_index 錛屾悳绱㈠叾涓殑姣忎竴琛屾潵寰楀埌鐩爣琛屻傝繖涓煡璇㈠皢浼?xì)鑷碁畱鋴社?100 嬈$墿鐞嗙鐩樼殑璇誨彇錛屽洜涓?employee 鐨勮瀛樻斁鍦ㄤ笉鍚岀殑鏁版嵁鍧椾腑銆?
銆銆 涓嶈繃錛屽鏋滆〃涓殑琛屽凡緇忛噸鏂版帓搴忎負(fù)鍜?last_name_index 鐨勪竴鏍鳳紝鍚屾牱鐨勬煡璇㈠張浼?xì)鎬庢牱澶勭悊鍛紵鎴戜滑鍙互鐪嬪埌榪欎釜鏌ヨ鍙渶瑕佷笁嬈$殑紓佺洏 I/O 灝辮瀹屽叏閮?100 涓憳宸ョ殑璧勬枡錛堜竴嬈$敤浣滅儲(chǔ)寮曠殑璇誨彇錛屼袱嬈$敤浣滄暟鎹潡鐨勮鍙栵級(jí)錛屽噺灝戜簡(jiǎn) 97 嬈$殑鍧楄鍙栥?
銆銆 閲嶆柊鎺掑簭甯︽潵鐨勬ц兘鏀瑰杽鐨勭▼搴﹀湪浜庡湪浣犲紑濮嬬殑鏃跺欒鐨勪貢搴忔у浣曪紝浠ュ強(qiáng)浣犻渶瑕佺敱搴忓垪涓闂灝戣銆傝嚦浜庝竴涓〃涓殑琛屼笌绱㈠紩鐨勬帓搴忛敭鐨勫尮閰嶇▼搴︼紝鍙互鏌ョ湅鏁版嵁瀛楀吀涓殑 dba_indexes 鍜?dba_tables 瑙嗗浘寰楀埌銆?
銆銆 鍦?dba_indexes 鐨勮鍥句腑錛屾煡鐪?clustering_factor 鍒椼傚鏋?clustering_factor 鐨勫煎拰琛ㄤ腑鐨勫潡鏁扮洰澶ц嚧涓鏍鳳紝閭d箞浣犵殑琛ㄥ拰绱㈠紩鐨勯『搴忔槸涓鏍風(fēng)殑銆備笉榪囷紝濡傛灉 clustering_factor 鐨勫兼帴榪戣〃涓殑琛屾暟鐩紝閭e氨琛ㄦ槑琛ㄦ牸涓殑琛屽拰绱㈠紩鐨勯『搴忔槸涓嶄竴鏍風(fēng)殑銆?
銆銆 琛岄噸鏂版帓搴忕殑浣滅敤鏄笉鍙互灝忕湅鐨勩傚湪闇瑕佽繘琛屽ぇ鑼冨洿鐨勭儲(chǔ)寮曟悳绱㈢殑澶ц〃涓紝琛岄噸鏂版帓搴忓彲浠ヤ護(hù)鏌ヨ鐨勬ц兘鎻愰珮?shù)笁鍊嶃?
銆銆 涓鏃︿綘宸茬粡鍐沖畾閲嶆柊鎺掑簭琛ㄤ腑鐨勮錛屼綘鍙互浣跨敤浠ヤ笅鐨勫伐鍏蜂箣涓鏉ラ噸鏂扮粍緇囪〃鏍箋?
銆銆. 浣跨敤 Oracle 鐨?Create Table As Select (CTAS) 璇硶鏉ユ嫹璐濊〃鏍?
銆銆. Oracle9i 鑷甫鐨勮〃鏍奸噸鏂扮粍緇囧伐鍏?
銆銆
銆銆 浠ヤ笅錛屾垜浠潵鐪嬩互涓?SQL 璇彞鐨勮皟浼樸?
銆銆SQL 璋冧紭
銆銆Oracle 鐨?SQL 璋冧紭鏄竴涓鏉傜殑涓婚錛岀敋鑷蟲(chóng)槸闇瑕佹暣鏈功鏉ヤ粙緇?Oracle SQL 璋冧紭鐨勭粏寰樊鍒備笉榪囨湁涓浜涘熀鏈殑瑙勫垯鏄瘡涓?Oracle DBA 閮介渶瑕佽窡浠庣殑錛岃繖浜涜鍒欏彲浠ユ敼鍠勪粬浠郴緇熺殑鎬ц兘銆?SQL 璋冧紭鐨勭洰鏍囨槸綆鍗曠殑錛?
銆銆. 娑堥櫎涓嶅繀瑕佺殑澶ц〃鍏ㄨ〃鎼滅儲(chǔ)錛氫笉蹇呰鐨勫叏琛ㄦ悳绱㈠鑷村ぇ閲忎笉蹇呰鐨?I/O 錛屼粠鑰屾嫋鎱㈡暣涓暟鎹簱鐨勬ц兘銆傝皟浼樹(shù)笓瀹墮鍏堜細(xì)鏍規(guī)嵁鏌ヨ榪斿洖鐨勮鏁扮洰鏉ヨ瘎浠?SQL 銆傚湪涓涓湁搴忕殑琛ㄤ腑錛屽鏋滄煡璇㈣繑鍥炲皯浜?40% 鐨勮錛屾垨鑰呭湪涓涓棤搴忕殑琛ㄤ腑錛岃繑鍥炲皯浜?7% 鐨勮錛岄偅涔堣繖涓煡璇㈤兘鍙互璋冩暣涓轟嬌鐢ㄤ竴涓儲(chǔ)寮曟潵浠f浛鍏ㄨ〃鎼滅儲(chǔ)銆傚浜庝笉蹇呰鐨勫叏琛ㄦ悳绱㈡潵璇達(dá)紝鏈甯歌鐨勮皟浼樻柟娉曟槸澧炲姞绱㈠紩銆傚彲浠ュ湪琛ㄤ腑鍔犲叆鏍囧噯鐨?B 鏍?wèi)鐑?chǔ)寮曪紝涔熷彲浠ュ姞鍏?bitmap 鍜屽熀浜庡嚱鏁扮殑绱㈠紩銆傝鍐沖畾鏄惁娑堥櫎涓涓叏琛ㄦ悳绱紝浣犲彲浠ヤ粩緇嗘鏌ョ儲(chǔ)寮曟悳绱㈢殑 I/O 寮閿鍜屽叏琛ㄦ悳绱㈢殑寮閿錛屽畠浠殑寮閿鍜屾暟鎹潡鐨勮鍙栧拰鍙兘鐨勫茍琛屾墽琛屾湁鍏籌紝騫跺皢涓よ呬綔瀵規(guī)瘮銆傚湪涓浜涙儏鍐典笅錛屼竴浜涗笉蹇呰鐨勫叏琛ㄦ悳绱㈢殑娑堥櫎鍙互閫氳繃寮哄埗浣跨敤涓涓?index 鏉ヨ揪鍒幫紝鍙渶瑕佸湪 SQL 璇彞涓姞鍏ヤ竴涓儲(chǔ)寮曠殑鎻愮ず灝卞彲浠ヤ簡(jiǎn)銆?
銆銆. 鍦ㄥ叏琛ㄦ悳绱㈡槸涓涓渶蹇殑璁塊棶鏂規(guī)硶鏃訛紝灝嗗皬琛ㄧ殑鍏ㄨ〃鎼滅儲(chǔ)鏀懼埌緙撳瓨?shù)腑锛岃皟浼樹(shù)笓瀹跺簲璇ゼ嫯淇濇湁涓涓笓闂ㄧ殑鏁版嵁緙撳啿鐢ㄤ綔琛岀紦鍐層傚湪 Oracle7 涓紝浣犲彲浠ヤ嬌鐢?alter table xxx cache 璇彞錛屽湪 Oracle8 鎴栦互涓婏紝灝忚〃鍙互琚己鍒朵負(fù)鏀懼埌 KEEP 姹犱腑緙撳啿銆?
銆銆. 紜繚鏈浼樼殑绱㈠紩浣跨敤 錛氬浜庢敼鍠勬煡璇㈢殑閫熷害錛岃繖鏄壒鍒噸瑕佺殑銆傛湁鏃?Oracle 鍙互閫夋嫨澶氫釜绱㈠紩鏉ヨ繘琛屾煡璇紝璋冧紭?shù)笓瀹跺繀椤粙個(gè)鏌ユ瘡涓儲(chǔ)寮曞茍涓旂‘淇?Oracle 浣跨敤姝g‘鐨勭儲(chǔ)寮曘傚畠榪樺寘鎷?bitmap 鍜屽熀浜庡嚱鏁扮殑绱㈠紩鐨勪嬌鐢ㄣ?
銆銆. 紜繚鏈浼樼殑 JOIN 鎿嶄綔錛氭湁浜涙煡璇嬌鐢?NESTED LOOP join 蹇竴浜涳紝鏈変簺鍒欐槸 HASH join 蹇竴浜涳紝鍙﹀涓浜涘垯鏄?sort-merge join 鏇村揩銆?
銆銆 榪欎簺瑙勫垯鐪嬫潵綆鍗曪紝涓嶈繃瀹冧滑鍗?SQL 璋冧紭?shù)徽d姟鐨?90% 錛屽茍涓斿畠浠篃鏃犻渶瀹屽叏鎳傚緱 Oracle SQL 鐨勫唴閮ㄨ繍浣溿備互涓嬫垜浠潵綆鍗曟瑙堜互涓?Oracle SQL 鐨勪紭鍖栥?
銆銆 鎴戜滑棣栧厛綆瑕佹煡鐪?Oracle 鐨勬帓搴忥紝騫朵笖鐪嬩竴鐪嬫帓搴忔搷浣滄槸濡備綍褰卞搷鎬ц兘鐨勩?
銆銆 璋冩暣 Oracle 鐨勬帓搴忔搷浣?
銆銆 鎺掑簭鏄?SQL 璇硶涓竴涓皬鐨勬柟闈紝浣嗗緢閲嶈錛屽湪 Oracle 鐨勮皟鏁翠腑錛屽畠甯稿父琚拷鐣ャ傚綋浣跨敤 create index 銆?ORDER BY 鎴栬?GROUP BY 鐨勮鍙ユ椂錛?Oracle 鏁版嵁搴撳皢浼?xì)鑷姩鎵ц鎺掑簭鐨勬搷浣溿傞氬父錛屽湪浠ヤ笅鐨勬儏鍐典笅 Oracle 浼?xì)杩涜鎺掑簭鐨勬搷浣滃Q?
銆銆 浣跨敤 Order by 鐨?SQL 璇彞
銆銆 浣跨敤 Group by 鐨?SQL 璇彞
銆銆 鍦ㄥ垱寤虹儲(chǔ)寮曠殑鏃跺?
銆銆 榪涜 table join 鏃訛紝鐢變簬鐜版湁绱㈠紩鐨勪笉瓚寵屽鑷?SQL 浼樺寲鍣ㄨ皟鐢?MERGE SORT
銆銆 褰撲笌 Oracle 寤虹珛璧蜂竴涓?session 鏃訛紝鍦ㄥ唴瀛樹(shù)腑灝變細(xì)涓鴻 session 鍒嗛厤涓涓鏈夌殑鎺掑簭鍖哄煙銆傚鏋滆榪炴帴鏄竴涓笓鐢ㄧ殑榪炴帴 (dedicated connection) 錛岄偅涔堝氨浼?xì)鏍规?init.ora 涓?sort_area_size 鍙傛暟鐨勫ぇ灝忓湪鍐呭瓨?shù)腑鍒嗛厤涓涓?Program Global Area (PGA) 銆傚鏋滆繛鎺ユ槸閫氳繃澶氱嚎紼嬫湇鍔″櫒寤虹珛鐨勶紝閭d箞鎺掑簭鐨勭┖闂村氨鍦?large_pool 涓垎閰嶃備笉騫哥殑鏄紝瀵逛簬鎵鏈夌殑 session 錛岀敤鍋氭帓搴忕殑鍐呭瓨閲忛兘蹇呴』鏄竴鏍風(fēng)殑錛屾垜浠笉鑳戒負(fù)闇瑕佹洿澶ф帓搴忕殑鎿嶄綔鍒嗛厤棰濆鐨勬帓搴忓尯鍩熴傚洜姝わ紝璁捐鑰呭繀欏諱綔鍑轟竴涓鉤琛★紝鍦ㄥ垎閰嶈凍澶熺殑鎺掑簭鍖哄煙浠ラ伩鍏嶅彂鐢熷ぇ鐨勬帓搴忎換鍔℃椂鍑虹幇紓佺洏鎺掑簭錛?disk sorts 錛夌殑鍚屾椂錛屽浜庨偅浜涘茍涓嶉渶瑕佽繘琛屽緢澶ф帓搴忕殑浠誨姟錛屽氨浼?xì)鍑虹庮C竴浜涙氮璐廣傚綋鐒?dòng)灱屽綋鎺掑簭鐨劷I洪棿闇姹傝秴鍑轟簡(jiǎn) sort_area_size 鐨勫ぇ灝忔椂錛岃繖鏃跺皢浼?xì)鍦?TEMP 琛ㄧ┖闂翠腑鍒嗛〉榪涜紓佺洏鎺掑簭銆傜鐩樻帓搴忚姣斿唴瀛樻帓搴忓ぇ姒傛參 14,000 鍊嶃?
銆銆 涓婇潰鎴戜滑宸茬粡鎻愬埌錛岀鏈夋帓搴忓尯鍩熺殑澶у皬鏄湁 init.ora 涓殑 sort_area_size 鍙傛暟鍐沖畾鐨勩傛瘡涓帓搴忔墍鍗犵敤鐨勫ぇ灝忕敱 init.ora 涓殑 sort_area_retained_size 鍙傛暟鍐沖畾銆傚綋鎺掑簭涓嶈兘鍦ㄥ垎閰嶇殑絀洪棿涓畬鎴愭椂錛屽氨浼?xì)鋴社敤纾佺洏鎺掑簭鐨勬柟寮忓Q屽嵆鍦?Oracle 瀹炰緥涓殑涓存椂琛ㄧ┖闂翠腑榪涜銆?
銆銆 紓佺洏鎺掑簭鐨勫紑閿鏄緢澶х殑錛屾湁鍑犱釜鏂歸潰鐨勫師鍥犮傞鍏堬紝鍜屽唴瀛樻帓搴忕浉姣旇緝錛屽畠浠壒鍒參錛涜屼笖紓佺洏鎺掑簭浼?xì)娑堣椾復(fù)鏃惰〃絀洪棿涓殑璧勬簮銆?Oracle 榪樺繀欏誨垎閰嶇紦鍐叉睜鍧楁潵淇濇寔涓存椂琛ㄧ┖闂翠腑鐨勫潡銆傛棤璁轟粈涔堟椂鍊欙紝鍐呭瓨鎺掑簭閮芥瘮紓佺洏鎺掑簭濂斤紝紓佺洏鎺掑簭灝嗕細(xì)浠や換鍔″彉鎱紝騫朵笖浼?xì)濯?jiǎng)鍝?Oracle 瀹炰緥鐨勫綋鍓嶄換鍔$殑鎵ц銆傝繕鏈夛紝榪囧鐨勭鐩樻帓搴忓皢浼?xì)渥o(hù) free buffer waits 鐨勫煎彉楂橈紝浠庤屼護(hù)鍏跺畠浠誨姟鐨勬暟鎹潡鐢辯紦鍐蹭腑縐昏蛋銆?
銆銆 鎺ョ潃錛岃鎴戜滑鐪嬩竴涓?Oracle 鐨勭珵浜夛紝騫朵笖鐪嬩竴涓嬭〃鐨勫瓨鍌ㄥ弬鏁扮殑璁劇疆鏄浣曞獎(jiǎng)鍝?SQL UPDATE 鍜?INSERT 璇彞鐨勬ц兘鐨勩?
璋冩暣 Oracle 鐨勭珵浜?
銆銆Oracle 鐨勫叾涓竴涓紭鐐規(guī)椂瀹冨彲浠ョ鐞嗘瘡涓〃絀洪棿涓殑鑷敱絀洪棿銆?Oracle 璐熻矗澶勭悊琛ㄥ拰绱㈠紩鐨勭┖闂寸鐞嗭紝榪欐牱灝卞彲浠ヨ鎴戜滑鏃犻渶鎳傚緱 Oracle 鐨勮〃鍜岀儲(chǔ)寮曠殑鍐呴儴榪愪綔銆備笉榪囷紝瀵逛簬鏈夌粡楠岀殑 Oracle 璋冧紭?shù)笓瀹舵潵璇村Q屼粬闇瑕佹噦寰?Oracle 鏄浣曠鐞嗚〃鐨?extent 鍜岀┖闂茬殑鏁版嵁鍧椼傚浜庤皟鏁存嫢鏈夐珮鐨?insert 鎴栬?update 鐨勭郴緇熸潵璇達(dá)紝榪欐槸闈炲父閲嶈鐨勩?
銆銆 瑕佺簿閫氬璞$殑璋冩暣錛屼綘闇瑕佹噦寰?freelists 鍜?freelist 緇勭殑琛屼負(fù)錛屽畠浠拰 pctfree 鍙?pctused 鍙傛暟鐨勫兼湁鍏熾傝繖浜涚煡璇嗗浜庝紒涓氳祫婧愯鍒掞紙 ERP 錛夌殑搴旂敤鏄壒鍒噸瑕佺殑錛屽洜涓哄湪榪欎簺搴旂敤涓紝涓嶆紜殑琛ㄨ緗氬父鏄?DML 璇彞鎵ц鎱㈢殑鍘熷洜銆?
銆銆 瀵逛簬鍒濆鑰呮潵璇達(dá)紝鏈甯歌鐨勯敊璇槸璁や負(fù)榛樿鐨?Oracle 鍙傛暟瀵逛簬鎵鏈夌殑瀵硅薄閮芥槸鏈浣崇殑銆傞櫎闈炵鐩樼殑娑堣椾笉鏄竴涓棶棰橈紝鍚﹀垯鍦ㄨ緗〃鐨?pctfree 鍜?pctused 鍙傛暟鏃訛紝灝卞繀欏昏冭檻騫沖潎鐨勮闀垮拰鏁版嵁搴撶殑鍧楀ぇ灝忥紝榪欐牱絀虹殑鍧楁墠浼?xì)琚湁鏁堝湴鏀惧?freelists 涓傚綋榪欎簺璁劇疆涓嶆紜椂錛岄偅浜涘緱鍒扮殑 freelists 涔熸槸 "dead" 鍧楋紝鍥犱負(fù)瀹冧滑娌℃湁瓚沖鐨勭┖闂存潵瀛樺偍涓琛岋紝榪欐牱灝嗕細(xì)瀵艱嚧鏄庢樉鐨勫鐞嗗歡榪熴?
Freelists 瀵逛簬鏈夋晥鍦伴噸鏂頒嬌鐢?Oracle 琛ㄧ┖闂翠腑鐨勭┖闂存槸寰堥噸瑕佺殑錛屽畠鍜?pctfree 鍙?pctused 榪欎袱涓瓨鍌ㄥ弬鏁扮殑璁劇疆鐩存帴鐩稿叧銆傞氳繃灝?pctused 璁劇疆涓轟竴涓珮鐨勫鹼紝榪欐椂鏁版嵁搴撳氨浼?xì)灏藉揩鍦伴噸鏂颁娇鐢ㄥ潡銆備笉榪囷紝楂樻ц兘鍜屾湁鏁堝湴閲嶆柊浣跨敤琛ㄧ殑鍧楁槸瀵圭珛鐨勩傚湪璋冩暣 Oracle 鐨勮〃鏍煎拰绱㈠紩鏃訛紝闇瑕佽鐪熻冭檻絀剁珶闇瑕侀珮鎬ц兘榪樻槸鏈夋晥鐨勭┖闂撮噸鐢紝騫朵笖鎹鏉ヨ緗〃鐨勫弬鏁般備互涓嬫垜浠潵鐪嬩竴涓嬭繖浜?freelists 鏄浣曞獎(jiǎng)鍝?Oracle 鐨勬ц兘鐨勩?
銆銆 褰撴湁涓涓姹傞渶瑕佹彃鍏ヤ竴琛屽埌琛ㄦ牸涓椂錛?Oracle 灝變細(xì)鍒?freelist 涓鎵句竴涓湁瓚沖鐨勭┖闂存潵瀹圭撼涓琛岀殑鍧椼備綘涔熻鐭ラ亾錛?freelist 涓叉槸鏀懼湪琛ㄦ牸鎴栬呯儲(chǔ)寮曠殑絎竴涓潡涓紝榪欎釜鍧椾篃琚О涓烘澶達(dá)紙 segment header 錛夈?pctfree 鍜?pctused 鍙傛暟鐨勫敮涓鐩殑灝辨槸涓轟簡(jiǎn)鎺у埗鍧楀浣曞湪 freelists 涓繘鍑恒傝櫧鐒?freelist link 鍜?unlink 鏄畝鍗曠殑 Oracle 鍔熻兘錛屼笉榪囪緗?freelist link (pctused) 鍜?unlink (pctfree) 瀵?Oracle 鐨勬ц兘紜疄鏈夊獎(jiǎng)鍝嶃?
銆銆 鐢?DBA 鐨勫熀鏈煡璇嗙煡閬擄紝 pctfree 鍙傛暟鏄帶鍒?freelist un-links 鐨勶紙鍗沖皢鍧楃敱 freelists 涓Щ闄わ級(jí)銆傝緗?pctfree=10 鎰忓懗鐫姣忎釜鍧楅兘淇濈暀 10% 鐨勭┖闂寸敤浣滆鎵╁睍銆?pctused 鍙傛暟鏄帶鍒?freelist re-links 鐨勩傝緗?pctused=40 鎰忓懗鐫鍙湁鍦ㄥ潡鐨勪嬌鐢ㄤ綆浜?40% 鏃舵墠浼?xì)鍥炲埌琛ㄦ牸鐨?freelists 涓?
銆銆 璁稿鏂版墜瀵逛簬涓涓潡閲嶆柊鍥炲埌 freelists 鍚庣殑澶勭悊閮芥湁浜涜瑙c傚叾瀹烇紝涓鏃︾敱浜庝竴涓垹闄ょ殑鎿嶄綔鑰屼護(hù)鍧楄閲嶆柊鍔犲叆鍒?freelist 涓紝瀹冨皢浼?xì)涓鐩翠繚鐣欏湪 freelist 涓嵆浣跨┖闂寸殑浣跨敤瓚呰繃浜?60% 錛屽彧鏈夊湪鍒拌揪 pctfree 鏃舵墠浼?xì)灏嗘暟鎹潡鐢?freelist 涓Щ璧般?
銆銆 琛ㄦ牸鍜岀儲(chǔ)寮曞瓨鍌ㄥ弬鏁拌緗殑瑕佹眰鎬葷粨
銆銆 浠ヤ笅鐨勪竴浜涜鍒欐槸鐢ㄦ潵璁劇疆 freelists, freelist groups, pctfree 鍜?pctused 瀛樺偍鍙傛暟鐨勩備綘涔熺煡閬擄紝 pctused 鍜?pctfree 鐨勫兼槸鍙互寰堝鏄撳湴閫氳繃 alter table 鍛戒護(hù)淇敼鐨勶紝涓涓ソ鐨?DBA 搴旇鐭ラ亾濡備綍璁劇疆榪欎簺鍙傛暟鐨勬渶浣?jīng)_箋?
銆銆 鏈夋晥鍦頒嬌鐢ㄧ┖闂村拰楂樻ц兘涔嬮棿鏄湁鐭涚浘鐨勶紝鑰岃〃鏍肩殑瀛樺偍鍙傛暟灝辨槸鎺у埗榪欎釜鏂歸潰鐨勭煕鐩撅細(xì)
. 瀵逛簬闇瑕佹湁鏁堝湴閲嶆柊浣跨敤絀洪棿錛屽彲浠ヨ緗竴涓珮鐨?pctused 鍊鹼紝涓嶈繃鍓綔鐢ㄦ槸闇瑕侀澶栫殑 I/O 銆備竴涓珮鐨?pctused 鍊兼剰鍛崇潃鐩稿婊$殑鍧楅兘浼?xì)鏀惧?freelist 涓傚洜姝わ紝榪欎簺鍧楀湪鍐嶆婊′箣鍓嶅彧鍙互鎺ュ彈鍑犺璁板綍錛屼粠鑰屽鑷存洿澶氱殑 I/O 銆?
. 榪芥眰楂樻ц兘鐨勮瘽錛屽彲浠ュ皢 pctused 璁劇疆涓轟竴涓綆鐨勫鹼紝榪欐剰鍛崇潃 Oracle 涓嶄細(xì)灝嗘暟鎹潡鏀懼埌 freelists 涓洿鍒板畠鍑犱箮鏄┖鐨勩傞偅涔堝潡灝嗗彲浠ュ湪婊′箣鍓嶆帴鏀舵洿澶氱殑琛岋紝鍥犳鍙互鍑忓皯鎻掑叆鎿嶄綔鐨?I/O 銆傝璁頒綇 Oracle 鎵╁睍鏂板潡鐨勬ц兘瑕佹瘮閲嶆柊浣跨敤鐜版湁鐨勫潡楂樸傚浜?Oracle 鏉ヨ錛屾墿灞曚竴涓〃姣旂鐞?freelists 娑堣楁洿灝戠殑璧勬簮銆?
銆銆 璁╂垜浠潵鍥為【涓涓嬭緗璞″瓨鍌ㄥ弬鏁扮殑涓浜涘父瑙佽鍒欙細(xì)
銆銆 錛庣粡甯稿皢 pctused 璁劇疆涓哄彲浠ユ帴鏀朵竴鏉℃柊琛屻傚浜庝笉鑳芥帴鍙椾竴琛岀殑 free blocks 瀵逛簬鎴戜滑鏉ヨ鏄病鏈夌敤鐨勩傚鏋滆繖鏍峰仛錛屽皢浼?xì)渥o(hù) Oracle 鐨勬ц兘鍙樻參錛屽洜涓?Oracle 灝嗗湪鎵╁睍琛ㄦ潵寰楀埌涓涓┖鐨勫潡涔嬪墠錛屼紒鍥捐鍙?5 涓?"dead" 鐨?free block 銆?
銆銆 錛庤〃鏍間腑 chained rows 鐨勫嚭鐜版剰鍛崇潃 pctfree 澶綆鎴栬呮槸 db_block_size 澶皯銆傚湪寰堝鎯呭喌涓嬶紝 RAW 鍜?LONG RAW 鍒楅兘寰堝法澶э紝浠ヨ嚦瓚呰繃浜?Oracle 鐨勬渶澶у潡鐨勫ぇ灝忥紝榪欐椂 chained rows 鏄笉鍙互閬垮厤鐨勩?
銆銆 錛庡鏋滀竴涓〃鏈夊悓鏃舵彃鍏ョ殑 SQL 璇彞錛岄偅涔堝畠闇瑕佹湁鍚屾椂鍒犻櫎鐨勮鍙ャ傝繍琛屽崟涓涓竴涓竻闄ょ殑宸ヤ綔灝嗕細(xì)鎶婂叏閮ㄧ殑絀洪棽鍧楁斁鍒頒竴涓?freelist 涓紝鑰屾病鏈夊叾瀹冨寘鍚湁浠諱綍絀洪棽鍧楃殑 freelists 鍑虹幇銆?
銆銆 錛?freelist 鍙傛暟搴旇璁劇疆涓鴻〃鏍煎悓鏃舵洿鏂扮殑鏈澶у箋備緥濡傦紝濡傛灉鍦ㄤ換浣曟椂鍊欙紝鏌愪釜琛ㄦ渶澶氭湁 20 涓敤鎴鋒墽琛屾彃鍏ョ殑鎿嶄綔錛岄偅涔堣琛ㄧ殑鍙傛暟搴旇璁劇疆涓?freelists=20 銆?
銆銆 搴旇浣忕殑鏄?freelist groups 鍙傛暟鐨勫煎彧鏄浜?Oracle Parallel Server 鍜?Real Application Clusters 鎵嶆槸鏈夌敤鐨勩傚浜庤繖綾?Oracle 錛?freelist groups 搴旇璁劇疆涓鴻闂琛ㄦ牸鐨?Oracle Parallel Server 瀹炰緥鐨勬暟鐩?/p>