老方塊o培訓(xùn)21班初中第_第1頁
老方塊o培訓(xùn)21班初中第_第2頁
老方塊o培訓(xùn)21班初中第_第3頁
老方塊o培訓(xùn)21班初中第_第4頁
老方塊o培訓(xùn)21班初中第_第5頁
已閱讀5頁,還剩93頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、消息消息分組:群消息對(duì)象:老方塊 ORACLE 培訓(xùn) 21 班日期: 2013-1-6001-培訓(xùn)老方塊(44793227)20:00:29今天又課001-培訓(xùn)老方塊(44793227)20:00:32都知道吧L24-才(423324322) 20:00:38嗯L54-梁耀(534133204) 20:00:38知道L113-飛揚(yáng)歲月(2478689873)20:00:44L114 shawwang(674431873)20:00:51校長(zhǎng)來了 ?L21-dreams(303495811) 20:00:53來了L48-蘋果(260457497)20:00:56L37-學(xué)委(380407449)

2、20:00:58001-培訓(xùn)老方塊(44793227)20:00:59開心最近幾次講的是 PGA 和 SGA 吧L24-才(423324322)20:01:13是的001-培訓(xùn)老方塊(44793227)20:01:23那我先來提幾個(gè)問題001-培訓(xùn)老方塊(44793227)20:01:28看看大家掌握的情況001-培訓(xùn)老方塊(44793227)20:01:55第 1 題:SGA 由哪些組件組成?L68-byf(2468217977) 20:02:31共享池,大池, dbcache , log chache ,strem poolL37-學(xué)委(380407449) 20:02:40shared

3、pool database cache log buffer cache large001-培訓(xùn)老方塊(44793227)20:02:47pool很好001-培訓(xùn)老方塊(44793227)20:02:55L68,什么是 log chache?001-培訓(xùn)老方塊(44793227)20:03:13應(yīng)該是 log bufferL68-byf(2468217977) 20:03:14redo 日志001-培訓(xùn)老方塊(44793227)20:03:31en,你就是這里錯(cuò)了001-培訓(xùn)老方塊(44793227)20:03:40所以這道題要給 L37L24-才(423324322) 20:03:56log

4、 buffer001-培訓(xùn)老方塊(44793227)20:03:56其實(shí)回答的基本是對(duì)的001-培訓(xùn)老方塊(44793227)20:04:08第 2 道題:001-培訓(xùn)老方塊(44793227)20:04:15什么是 shared SQL Area?001-培訓(xùn)老方塊(44793227)20:04:39shared SQL Area 是共享池的library屬于 SGA001-培訓(xùn)老方塊(44793227)20:04:46cache 的組件,大家說,他的作用是什么L37-學(xué)委(380407449)20:04:50共享 sql 區(qū)L115-ylc(369132667) 20:04:58還有 pl

5、/sqlL87-小安(446464087) 20:05:00共享 sql 區(qū)L54-梁耀(534133204)20:05:02它存放了執(zhí)行計(jì)劃和樹L68-byf(2468217977)20:05:11私有 cursor 指向 shared sql area , 用來放執(zhí)行計(jì)劃001-培訓(xùn)老方塊(44793227)20:05:30L54 回答的正確001-培訓(xùn)老方塊(44793227)20:05:40它存放了執(zhí)行計(jì)劃和001-培訓(xùn)老方塊(44793227)20:06:06樹有了 SQL 共享區(qū),如果相同的語句再次執(zhí)行001-培訓(xùn)老方塊(44793227)20:06:27可以直接使用之前已經(jīng)生成的

6、 SQL 共享區(qū)的執(zhí)行計(jì)劃L54-梁耀(534133204) 20:06:32就會(huì)用軟軟L37-學(xué)委(380407449) 20:06:39超過 3 次就放 uga 中了001-培訓(xùn)老方塊(44793227)20:06:44這樣可以節(jié)省了再次生成執(zhí)行計(jì)劃和001-培訓(xùn)老方塊(44793227)20:06:58樹這在我們 Oracle 稱之為軟001-培訓(xùn)老方塊(44793227)20:07:01明白嗎?L87-小安(446464087)20:07:16這哈明白001-培訓(xùn)老方塊(44793227)20:07:17這是非常重要的概念L87-小安(446464087)20:07:20了001-培訓(xùn)

7、老方塊(44793227)20:07:27這道題給 L54001-培訓(xùn)老方塊(44793227)20:07:31第 3 道題:L54-梁耀(534133204) 20:07:333QL87-小安(446464087)20:07:33001-培訓(xùn)老方塊(44793227)20:07:46PGA 由哪些組件組成?L52-阿仲(234070450) 20:08:10客戶和服務(wù)員L68-byf(2468217977) 20:08:24UGA , pga stack ,其中 UGA 包含 cursor區(qū), 排序區(qū), 連接信息等L87-小安(446464087) 20:08:32進(jìn)程 和 UGA001-培

8、訓(xùn)老方塊(44793227)20:09:12專有模式下001-培訓(xùn)老方塊(44793227)20:09:14o Private SQL Areao Session Memory001-培訓(xùn)老方塊(44793227)20:09:24共享模式下o Private SQL Area001-培訓(xùn)老方塊(44793227)20:09:34其中 Session Memory 是 UGA 的部分001-培訓(xùn)老方塊(44793227)20:09:51那什么是 Private SQL Area 呢?L37-學(xué)委(380407449) 20:10:27私有 sql 區(qū),存放綁定變量等私有信息L54-梁耀(5341

9、33204) 20:10:32私有 SQL 區(qū)包含了綁定變量值和運(yùn)行時(shí)期內(nèi)存結(jié)構(gòu)信息等數(shù)據(jù)L87-小安(446464087) 20:10:39由句柄指向 Private SQL Area001-培訓(xùn)老方塊(44793227)20:10:48由兩部分組成001-培訓(xùn)老方塊(44793227)20:11:16o 固有部分,比如綁定信息,只有游標(biāo)關(guān)閉的時(shí)候才001-培訓(xùn)老方塊(44793227)20:11:34o 運(yùn)行時(shí)部分,語句執(zhí)行完就001-培訓(xùn)老方塊(44793227)20:11:54明白嗎L68-byf(2468217977) 20:12:16運(yùn)行部分是否是 CGA001-培訓(xùn)老方塊(447

10、93227)20:12:22我們的 SQL 在調(diào)用前,先要去 shared001-培訓(xùn)老方塊(44793227)SQLArea 搜索20:12:28如果存在,就是軟001-培訓(xùn)老方塊(44793227)20:12:41當(dāng)完成后,就要執(zhí)行 SQL 了001-培訓(xùn)老方塊(44793227)20:12:56要執(zhí)行 SQL,必須是在 PGA 的 Private行001-培訓(xùn)老方塊(44793227)20:13:06SQLArea 中執(zhí)所以,真正執(zhí)行是在 PGA 中的001-培訓(xùn)老方塊(44793227)20:13:08明白嗎L87-小安(446464087) 20:13:14哦L50-安(313579

11、738)20:13:29是不是只有對(duì)單表的001-培訓(xùn)老方塊(44793227)20:13:46才緩存?L50,什么意思?L21-dreams(303495811)20:14:18超過 3 次應(yīng)該都緩存的L50-安(313579738)20:14:25多表的 SqL ,能緩存嗎?001-培訓(xùn)老方塊(44793227)20:14:26先在答疑群?jiǎn)柊?01-培訓(xùn)老方塊(44793227)20:14:38不知道你緩存是什么意思001-培訓(xùn)老方塊(44793227)20:14:56001-培訓(xùn)老方塊(44793227)20:15:01我們先繼續(xù)001-培訓(xùn)老方塊(44793227)20:15:12但是

12、軟件解的情況,我們每次執(zhí)行 SQL,都要去shared SQL Area 搜索001-培訓(xùn)老方塊(44793227)20:15:24shared SQL Area 是屬于 SGA 的,是共享內(nèi)存001-培訓(xùn)老方塊(44793227)20:15:34共享就意味著會(huì)有并發(fā)001-培訓(xùn)老方塊(44793227)20:15:58為了shared SQL Area 的內(nèi)存并發(fā)存取,就需要latch 來保證 shared SQL Area 的完整性001-培訓(xùn)老方塊(44793227)20:16:21所以,并發(fā)shared SQL Area,容易產(chǎn)生latch free 等待001-培訓(xùn)老方塊(44793

13、227)20:17:16如果在一個(gè)會(huì)話頻繁執(zhí)行同一條 SQL 游標(biāo)的,能不通過shared SQL Area 去搜索,直接把shared SQL Area的信息保存在會(huì)話中,那就避免了 latchfree001-培訓(xùn)老方塊(44793227)20:17:19對(duì)吧L87-小安(446464087) 20:17:34恩L54-梁耀(534133204)20:17:39嗯001-培訓(xùn)老方塊(44793227)20:17:45所以,我提出第 4 個(gè)問題001-培訓(xùn)老方塊(44793227)20:17:48第 4 個(gè)問題:001-培訓(xùn)老方塊(44793227)20:17:50什么是 session_ca

14、che_cursor?L18-課代表(12669627) 20:18:24游標(biāo)會(huì)話緩存L52-阿仲(234070450) 20:18:25保存 3 次以上相同的軟L87-小安(446464087) 20:18:27是 當(dāng)前用戶的 句柄信息嗎?L68-byf(2468217977)20:18:38軟3 次以上,把執(zhí)行計(jì)劃放到 PGA 中001-培訓(xùn)老方塊(44793227)20:18:45在同一個(gè)會(huì)話,同一條 SQL 執(zhí)行超過 3 次,就把shared SQL Area 的游標(biāo) CACHE 到 UGA 中001-培訓(xùn)老方塊(44793227)20:19:35這樣,我們?cè)趫?zhí)行第 4 次的時(shí)候,不需

15、要去搜索library cache 的 shared SQL Area 了001-培訓(xùn)老方塊(44793227)20:19:36對(duì)吧L54-梁耀(534133204) 20:19:55嗯,這就是軟軟了吧L48-蘋果(260457497)20:19:55恩001-培訓(xùn)老方塊(44793227)20:20:10session_cache_cursor 就是把游標(biāo) CACHE 到會(huì)話中001-培訓(xùn)老方塊(44793227)20:20:26這種方式我們叫軟軟001-培訓(xùn)老方塊(44793227)20:20:29懂了吧L54-梁耀(534133204) 20:20:44懂了。001-培訓(xùn)老方塊(4479

16、3227)20:20:50這道題,我就001-培訓(xùn)老方塊(44793227)20:21:03給 L52 了剛才我們介紹了 shared SQL001-培訓(xùn)老方塊(44793227)20:21:11Area那他屬于哪個(gè)內(nèi)存組件呢?001-培訓(xùn)老方塊(44793227)20:21:17引出第 5 道題001-培訓(xùn)老方塊(44793227)20:21:20第 5 道題:001-培訓(xùn)老方塊(44793227)20:21:26什么是 library cache?L50-安(313579738) 20:21:26SharePoolL37-學(xué)委(380407449) 20:21:27共享池L37-學(xué)委(38

17、0407449) 20:21:45庫緩存L54-梁耀(534133204) 20:21:49library cache 來存放該用戶請(qǐng)求的對(duì)象權(quán)限、表、索戶名等字典信息。001-培訓(xùn)老方塊(44793227)20:21:57是庫緩存L33-孤狼(1160243729) 20:22:14數(shù)據(jù)緩沖區(qū)域L52-阿仲(234070450) 20:22:21保存 sql,pl/sql 的地方L87-小安(446464087) 20:22:22Library Cache 大小是由 SHARED POOL SIZE 決定的由 oracle 自動(dòng)管理,不能手動(dòng)修改001-培訓(xùn)老方塊(44793227)20:2

18、2:30沒人回答對(duì)L54-梁耀(534133204)20:22:30當(dāng)評(píng)估出成本最少的執(zhí)行計(jì)劃后將執(zhí)行計(jì)劃和樹存入到一塊內(nèi)存,給其它迚程共享,這塊內(nèi)存就是 LIBRARY CACHE;L68-byf(2468217977)20:22:47存放編譯代碼,調(diào)試代碼,L01-Cheng(164708491)樹等信息 , 另外會(huì)存在部分,如 LRU 列表。20:22:54庫緩存(library cache)中包含共享 SQL 區(qū)(shared SQL area),私有 SQL 區(qū)(private SQL area)(當(dāng)系統(tǒng)運(yùn)行在共享服務(wù)器模式下時(shí)),PL/SQL 過程和包,以及用于系統(tǒng)的各種內(nèi)存結(jié)構(gòu),

19、例如鎖(lock)及庫緩存句柄(library cache handle)等。L48-蘋果(260457497) 20:22:59最近頻繁使用的sql 語句信息001-培訓(xùn)老方塊(44793227)20:23:03L54 這次補(bǔ)充的正確了一點(diǎn)001-培訓(xùn)老方塊(44793227)20:23:09LIBRARY CACHE 是語句信息。001-培訓(xùn)老方塊(44793227)20:23:35最近頻繁執(zhí)行的 SQL 或 PLSQLL48 也是對(duì) 的001-培訓(xùn)老方塊(44793227)20:23:40這道題就給 L54001-培訓(xùn)老方塊(44793227)20:23:46大家學(xué)的不錯(cuò)L54-梁耀(5

20、34133204) 20:23:473Q001-培訓(xùn)老方塊(44793227)20:23:54這么枯燥的,能理解不容易001-培訓(xùn)老方塊(44793227)20:24:15這些知識(shí)對(duì)001-培訓(xùn)老方塊(44793227)來本科內(nèi)容非常重要20:24:29上一堂課學(xué)了 Library cache 了吧L54-梁耀(534133204) 20:24:41對(duì),就是到這里了001-培訓(xùn)老方塊(44793227)20:24:49Library cache 是共享池的其中一個(gè)組件001-培訓(xùn)老方塊(44793227)20:25:06存放的樹和執(zhí)行計(jì)劃001-培訓(xùn)老方塊(44793227)20:25:12那

21、另一個(gè)組件叫什么?L37-學(xué)委(380407449) 20:25:27數(shù)據(jù)字典L68-byf(2468217977) 20:25:31data directioryL54-梁耀(534133204) 20:25:32001-培訓(xùn)老方塊(44793227)20:25:37good001-培訓(xùn)老方塊(44793227)20:25:46大家用了不同的術(shù)語,都是正確的001-培訓(xùn)老方塊(44793227)20:25:48001-培訓(xùn)老方塊(44793227)20:26:01data directiory cache 又名 row cache001-培訓(xùn)老方塊(44793227)20:26:07在 OR

22、ACLE 處理客戶請(qǐng)求后,對(duì)用戶的 SQL 在處理分析執(zhí)行計(jì)劃和001-培訓(xùn)老方塊(44793227)20:26:19樹前,還需要做兩件事 一個(gè)是語法分析 一個(gè)是語意分析001-培訓(xùn)老方塊(44793227)20:26:28我們來看一個(gè)例子001-培訓(xùn)老方塊(44793227)20:26:42001-培訓(xùn)老方塊(44793227)20:26:44假設(shè),我們?cè)?outln 用戶下有一個(gè)表名data_dict_cache001-培訓(xùn)老方塊(44793227)20:27:04我們來執(zhí)行下面 6 條語句001-培訓(xùn)老方塊(44793227)20:27:10001-培訓(xùn)老方塊(44793227)20:2

23、7:19看到圖了嗎L54-梁耀(534133204) 20:27:27還沒呢L54-梁耀(534133204)20:27:35看到了L48-蘋果(260457497)20:27:43看到了001-培訓(xùn)老方塊(44793227)20:27:44 我們看到上圖第 1 步都是在語法分析,通過語法分析器,SELECT 寫錯(cuò)了,寫成 SELET。001-培訓(xùn)老方塊(44793227)20:28:11這是在語法階段001-培訓(xùn)老方塊(44793227)20:28:23出來的再看第 2 條001-培訓(xùn)老方塊(44793227)20:28:31語法是對(duì)了001-培訓(xùn)老方塊(44793227)20:28:52到

24、了語意分析階段發(fā)生錯(cuò)誤001-培訓(xùn)老方塊(44793227)20:29:01怎么出錯(cuò)誤的?L54-梁耀(534133204)20:29:21丌存在表001-培訓(xùn)老方塊(44793227)20:29:21提示表和視圖不存在001-培訓(xùn)老方塊(44793227)20:29:44因?yàn)?out.data_dict_cache001-培訓(xùn)老方塊(44793227)20:29:53out 用戶下不存在這個(gè)表001-培訓(xùn)老方塊(44793227)20:30:27那在語意分析階段,通過001-培訓(xùn)老方塊(44793227)dc_users 和 dc_tables20:30:41出,out 用戶沒有表 data

25、_dict_cache001-培訓(xùn)老方塊(44793227)20:30:44理解了吧L54-梁耀(534133204) 20:31:10嗯哪,先語法在語意001-培訓(xùn)老方塊(44793227)20:31:32其他同學(xué)呢L39-小青春(1004050304)20:31:43L87-小安(446464087) 20:31:47明白001-培訓(xùn)老方塊(44793227)20:31:52001-培訓(xùn)老方塊(44793227)20:31:55我們?cè)倏吹?3 句L37-學(xué)委(380407449) 20:31:55L21-dreams(303495811) 20:32:01等于上新課,之前的忘得差不多了。想

26、死 ingL24-才(423324322) 20:32:05還行L114 shawwang(674431873)20:32:10理解大致L54-梁耀(534133204)20:32:30沒權(quán)限001-培訓(xùn)老方塊(44793227)20:32:33這句語法也是對(duì)的,在語意分析階段,發(fā)現(xiàn)用戶無權(quán)限讀 outln.data_dict_cache001-培訓(xùn)老方塊(44793227)20:32:37那是怎么001-培訓(xùn)老方塊(44793227)20:32:56出來的通過差 dc_privsL54-梁耀(534133204)出來的20:33:07查找數(shù)據(jù)字典L74-圓夢(mèng)(83842071)20:33:3

27、6查找權(quán)限001-培訓(xùn)老方塊(44793227)20:33:38我們?cè)賮砜吹?4-6 句001-培訓(xùn)老方塊(44793227)20:33:37001-培訓(xùn)老方塊(44793227)20:33:56第 4 句,先001-培訓(xùn)老方塊(44793227)20:34:17的權(quán)限第 5 句,語法仍然是對(duì)的,那語意階段報(bào)了什么錯(cuò)誤?L54-梁耀(534133204) 20:34:30沒有列名L48-蘋果(260457497)20:34:33列丌存在001-培訓(xùn)老方塊(44793227)20:34:34提示表的字段錯(cuò)誤L68-byf(2468217977)20:34:35列不存在L74-圓夢(mèng)(8384207

28、1)20:34:40列丌存在001-培訓(xùn)老方塊(44793227)20:34:44objet_id 寫錯(cuò)了001-培訓(xùn)老方塊(44793227)20:34:48應(yīng)該是 object_id001-培訓(xùn)老方塊(44793227)20:34:54這是怎么查出來的001-培訓(xùn)老方塊(44793227)20:35:14通過查 dc_columns001-培訓(xùn)老方塊(44793227)20:35:40大家看001-培訓(xùn)老方塊(44793227)20:35:53語意階段,通過查找數(shù)據(jù)字典dc_users dc_tables dc_privs dc_columns001-培訓(xùn)老方塊(44793227)20:3

29、6:07來獲得語意是否正確001-培訓(xùn)老方塊(44793227)20:36:15理解了吧L74-圓夢(mèng)(83842071) 20:36:20通過數(shù)據(jù)字典001-培訓(xùn)老方塊(44793227)20:36:37那每個(gè)用戶每條 SQL 語句都要經(jīng)過語意分析001-培訓(xùn)老方塊(44793227)20:37:10那么是不是該將這些 dc_開頭的數(shù)據(jù)字典共享出來,進(jìn)行語意分析001-培訓(xùn)老方塊(44793227)20:37:26這里 dc 是字典 cache 的縮寫001-培訓(xùn)老方塊(44793227)20:37:48數(shù)據(jù)字典在數(shù)據(jù)文件中001-培訓(xùn)老方塊(44793227)20:38:32在 system

30、 表空間的以dba_ user_ all_開頭的名字都是001-培訓(xùn)老方塊(44793227)20:39:01在 system 表空間的數(shù)據(jù)字典那我們是不是要將提取到內(nèi)存L54-梁耀(534133204)在 system 表空間的數(shù)據(jù)字典20:39:30是的,方便001-培訓(xùn)老方塊(44793227)20:39:33給進(jìn)程語意分析時(shí)001-培訓(xùn)老方塊(44793227)20:39:35SQL 的語意是否正確對(duì)吧L54-梁耀(534133204) 20:39:48嗯L48-蘋果(260457497)20:39:55恩L74-圓夢(mèng)(83842071)20:40:12嗯001-培訓(xùn)老方塊(44793

31、227)20:40:13那么這些 system 表空間中以dba_ user_ all_的數(shù)據(jù)字典,共享到內(nèi)存時(shí)名字叫 dc_001-培訓(xùn)老方塊(44793227)20:40:36而存放 dc_這些字典的內(nèi)存,就叫Data Dictionary CacheL37-學(xué)委(380407449)20:40:38怎么查看呢001-培訓(xùn)老方塊(44793227)20:40:38理解了吧L37-學(xué)委(380407449)20:40:55內(nèi)存中的L74-圓夢(mèng)(83842071)20:41:08明白001-培訓(xùn)老方塊(44793227)20:41:08那為什么又名 row001-培訓(xùn)老方塊(44793227)

32、20:41:12cache 呢由于數(shù)據(jù)字典表并不見得整個(gè)表的都會(huì)放入DATA DICTIONARY CACHE,可能是部分字典行被存入,所以我們又稱該內(nèi)存區(qū)域?yàn)?ROW CACHE(行緩存區(qū))L54-梁耀(534133204) 20:41:46ok001-培訓(xùn)老方塊(44793227)20:41:55我們內(nèi)存有限,所以dba_ user_ all_的數(shù)據(jù)字典只有部分行共享到Data Dictionary CacheL24-才(423324322) 20:42:07越來越深了 都插不上嘴了001-培訓(xùn)老方塊(44793227)20:42:21001-培訓(xùn)老方塊(44793227)20:42:28

33、因?yàn)橹皇荓74-圓夢(mèng)(83842071) 20:42:49了部分行這個(gè)部分行L74-圓夢(mèng)(83842071)20:42:52我們能知道嗎001-培訓(xùn)老方塊(44793227)20:42:52所以,我們說數(shù)據(jù)字典 CACHE,又命名為 ROW001-培訓(xùn)老方塊(44793227)20:42:57CACHE行 CACHEL114 shawwang(674431873)20:43:00什么叫 共享到內(nèi)存時(shí)名字叫 dc_L24-才(423324322) 20:43:06怎么決定的哪部分行001-培訓(xùn)老方塊(44793227)20:43:21也就是最常用的部分行,會(huì)放到內(nèi)存共享001-培訓(xùn)老方塊(447

34、93227)20:43:29以 LRU 算法為準(zhǔn)L24-才(423324322) 20:43:40哦001-培訓(xùn)老方塊(44793227)20:43:47最近最常用使用的部分行,最不容易被淘汰001-培訓(xùn)老方塊(44793227)20:43:52理解了吧L24-才(423324322)20:44:00曉得L74-圓夢(mèng)(83842071)20:44:12也就是 oracle001-培訓(xùn)老方塊(44793227)20:44:36001-培訓(xùn)老方塊(44793227)20:44:42DC_USERSDC_PRIVS DC_TABLES用戶列表權(quán)限列表表的列表DC_COLUMNS 某表的字段列表001

35、-培訓(xùn)老方塊(44793227)20:44:55語意分析時(shí)首先在DATA DICTIONARY CACHE 查找語句中的用戶名、表名、權(quán)限、字段名、SEQUENCE 名等等是否在數(shù)據(jù)字典行緩存里001-培訓(xùn)老方塊(44793227)20:45:14如果該字典不在數(shù)據(jù)字典行緩存里,去系統(tǒng)表空間數(shù)據(jù)字典調(diào)入 DATA DICTIONARY CACHE001-培訓(xùn)老方塊(44793227)20:45:24然后搜索 SQL 中涉及的對(duì)象是否有對(duì)應(yīng)的字典,如果沒有就會(huì)報(bào)錯(cuò)。001-培訓(xùn)老方塊(44793227)20:45:34L24,很難嗎?跟不上?001-培訓(xùn)老方塊(44793227)20:45:59

36、大家說,ROW CACHE 的內(nèi)容怎么看?001-培訓(xùn)老方塊(44793227)20:46:11我們來查看下 ROW CACHE 里的內(nèi)容001-培訓(xùn)老方塊(44793227)20:46:16大家可以L24-才(423324322) 20:46:24練練有點(diǎn) 最近沒復(fù)習(xí)上 唉.001-培訓(xùn)老方塊(44793227)20:46:24001-培訓(xùn)老方塊(44793227)20:46:48在數(shù)據(jù)庫中可以通過數(shù)據(jù)字典 v$rowcache 來據(jù)字典緩存有哪些。001-培訓(xùn)老方塊(44793227)20:46:55數(shù)是不是字典有很多啊L24-才(423324322) 20:47:03嗯 很多001-培訓(xùn)

37、老方塊(44793227)20:47:20我們先來看數(shù)據(jù)字典 CACHE 的結(jié)構(gòu)圖L24-才(423324322) 20:47:24L54-梁耀(534133204)20:47:2942 行001-培訓(xùn)老方塊(44793227)20:47:27001-培訓(xùn)老方塊(44793227)20:47:41數(shù)據(jù)字典緩存的內(nèi)容如下:001-培訓(xùn)老方塊(44793227)20:47:51 數(shù)據(jù)字典 CACHE 保存了最近最常使用的數(shù)據(jù)對(duì)象定義,如用戶、權(quán)限、列、表、索引等全部可以放到數(shù)據(jù)字典共享。001-培訓(xùn)老方塊(44793227)20:48:13 在 SQL階段,服務(wù)器進(jìn)程會(huì)鎖住這個(gè)字典,以避免對(duì)象定義

38、的變化。001-培訓(xùn)老方塊(44793227)20:48:30另外會(huì)設(shè)置關(guān)聯(lián)會(huì)話的對(duì)象鎖,并設(shè)置鎖模式為 N001-培訓(xùn)老方塊(44793227)20:48:38還記得 N 模式嗎?001-培訓(xùn)老方塊(44793227)20:48:511 號(hào) TM 鎖001-培訓(xùn)老方塊(44793227)20:48:58在這里就不是 TM 鎖了001-培訓(xùn)老方塊(44793227)20:49:11是 ROW CACHE LOCK001-培訓(xùn)老方塊(44793227)20:49:24跟的上嗎L87-小安(446464087) 20:49:29行級(jí)鎖L54-梁耀(534133204) 20:49:32可以L24-

39、才(423324322)20:49:37嗯001-培訓(xùn)老方塊(44793227)20:49:40不是行級(jí)鎖呀001-培訓(xùn)老方塊(44793227)20:49:48行級(jí)鎖怎么表示?L54-梁耀(534133204) 20:49:58TX001-培訓(xùn)老方塊(44793227)20:49:59行級(jí)鎖是 TX 鎖L21-dreams(303495811) 20:50:060 跟 6 號(hào)L24-才(423324322) 20:50:06TXL87-小安(446464087) 20:50:09恩001-培訓(xùn)老方塊(44793227)20:50:11我們這里是內(nèi)存鎖,不是表的鎖,也不是行的鎖001-培訓(xùn)老方

40、塊(44793227)20:50:20是數(shù)據(jù)字典的鎖001-培訓(xùn)老方塊(44793227)20:50:31 數(shù)據(jù)字典在磁盤有一份,ORACLE 通過把數(shù)據(jù)字典保存到數(shù)據(jù)字典 CACHE 里,加快001-培訓(xùn)老方塊(44793227)速度。20:51:25 DATA DICTIONARY CACHE 大小由shared pool size 決定001-培訓(xùn)老方塊(44793227)20:51:47在 AMM 下,都不需要設(shè)置 shared pool size001-培訓(xùn)老方塊(44793227)20:51:57設(shè)置 shared pool size 只起到什么作用?L37-學(xué)委(38040744

41、9) 20:52:16防止抖動(dòng)001-培訓(xùn)老方塊(44793227)20:52:27學(xué)習(xí)委員學(xué)的可以的L48-蘋果(260457497) 20:52:30防止內(nèi)存抖動(dòng)L68-byf(2468217977) 20:52:31強(qiáng)啊001-培訓(xùn)老方塊(44793227)20:52:36好,共享池我們就學(xué)到這里001-培訓(xùn)老方塊(44793227)20:52:40學(xué)的其實(shí)是很粗的001-培訓(xùn)老方塊(44793227)20:52:45本科才能細(xì)下去001-培訓(xùn)老方塊(44793227)20:52:58我們先把概念學(xué)完,再做實(shí)驗(yàn)001-培訓(xùn)老方塊(44793227)20:53:09接下去,我們來學(xué)習(xí) SG

42、A 的另一個(gè)重要組件001-培訓(xùn)老方塊(44793227)20:53:17001-培訓(xùn)老方塊(44793227)20:53:38我們說共享池是用來001-培訓(xùn)老方塊(44793227)20:53:49SQL 的那么完,要執(zhí)行 SQL 時(shí),要取數(shù)據(jù)001-培訓(xùn)老方塊(44793227)20:54:10從磁盤取到的數(shù)據(jù)放到內(nèi)存的什么地方?001-培訓(xùn)老方塊(44793227)20:54:19就是 Database Buffer CacheL74-圓夢(mèng)(83842071) 20:54:31row cache001-培訓(xùn)老方塊(44793227)20:54:31所以這塊內(nèi)存非常非常重要001-培訓(xùn)老方

43、塊(44793227)20:54:48怎么又出來 row cache 了001-培訓(xùn)老方塊(44793227)20:54:54這里跟 row cache 沒有關(guān)系001-培訓(xùn)老方塊(44793227)20:55:08大家還記得開心L52-阿仲(234070450) 20:55:10他今天晚上喝了點(diǎn)酒,別理他001-培訓(xùn)老方塊(44793227)20:55:19講的 3 段故事嗎呵呵L54-梁耀(534133204)20:55:21記得001-培訓(xùn)老方塊(44793227)20:55:24在前面的例子中,小麗去靜安書店買“CBO 基礎(chǔ)”這本書,但是店里的倉庫沒有這本書的庫存,那只能去上海館采購這

44、本書。001-培訓(xùn)老方塊(44793227)20:55:38上海館就是我們的 DB 庫文件,但是如果我在靜安店庫房有“CBO 基礎(chǔ)”書的庫存,那就直接可以從靜安店庫存賣給小麗,而不需要去上海001-培訓(xùn)老方塊(44793227)館拿。20:55:56大家說要完成這筆L54-梁耀(534133204) 20:56:08哪個(gè)快?從靜安店庫存賣給小麗L21-dreams(303495811)20:56:18肯定后面快阿L24-才(423324322) 20:56:18內(nèi)存快001-培訓(xùn)老方塊(44793227)20:56:22前一種情況多了進(jìn)貨所花的時(shí)間001-培訓(xùn)老方塊(44793227)20:5

45、6:30當(dāng)然是靜安店快,靜安店的庫存相當(dāng)于 ORACLE 的內(nèi)存,而上海001-培訓(xùn)老方塊(44793227)館相當(dāng)于磁盤。20:56:44最終要執(zhí)行的必須是在內(nèi)存中完成001-培訓(xùn)老方塊(44793227)20:56:51如果直接在靜安店倉庫拿,就相當(dāng)于直接從內(nèi)存拿。L74-圓夢(mèng)(83842071) 20:57:09迷糊了001-培訓(xùn)老方塊(44793227)20:57:17直接內(nèi)存讀我們理解成邏輯讀L87-小安(446464087) 20:57:33邏輯讀比物理讀快001-培訓(xùn)老方塊(44793227)20:57:46如果要從上海麗L24-才(423324322) 20:57:58館進(jìn)貨到

46、靜安書店,然后再賣給小物理讀001-培訓(xùn)老方塊(44793227)20:58:01那么就相當(dāng)于物理讀001-培訓(xùn)老方塊(44793227)20:58:11我們知道內(nèi)存比磁盤快上千百倍001-培訓(xùn)老方塊(44793227)20:58:38而靜安的庫房就是我們下面要講的一個(gè)重要內(nèi)存組件“DATABASE BUFFER001-培訓(xùn)老方塊(44793227)20:58:49CACHE”L74,還糊涂嗎L74-圓夢(mèng)(83842071) 20:58:57丌糊涂了L74-圓夢(mèng)(83842071)20:59:14給填麻煩了L21-dreams(303495811) 20:59:18row cache 相當(dāng)于物

47、理讀么?001-培訓(xùn)老方塊(44793227)20:59:22怕被 L52 罵吧L52-阿仲(234070450) 20:59:24下次上課前少喝點(diǎn)酒L37-學(xué)委(380407449) 20:59:28哈哈L54-梁耀(534133204) 20:59:36哈哈L74-圓夢(mèng)(83842071)20:59:47嘴下留情001-培訓(xùn)老方塊(44793227)20:59:51row cache 是內(nèi)存,如果我們要讀的字典沒在row cache 中,就需要物理讀L74-圓夢(mèng)(83842071) 20:59:54出來混丌易001-培訓(xùn)老方塊(44793227)21:00:07從系統(tǒng)表空間讀字典的數(shù)據(jù)到

48、row cache001-培訓(xùn)老方塊(44793227)21:00:25如果你語意分析時(shí)需要的字典已經(jīng)在 row001-培訓(xùn)老方塊(44793227)21:00:33cache那么就直接內(nèi)存命中001-培訓(xùn)老方塊(44793227)21:00:42我們叫 row cache hit001-培訓(xùn)老方塊(44793227)21:01:04所以越高,說明性能越好L21-dreams(303495811) 21:01:13嗯001-培訓(xùn)老方塊(44793227)21:01:25最好 DATA DICTIONARY CACHE hit 到 100%001-培訓(xùn)老方塊(44793227)21:01:39我

49、們這些內(nèi)存都有個(gè)L87-小安(446464087) 21:01:45的指標(biāo)也就是軟高001-培訓(xùn)老方塊(44793227)21:01:48這是實(shí)例性能的關(guān)鍵指標(biāo)L87-小安(446464087)21:01:58AWR 里面好像有這個(gè)指標(biāo)001-培訓(xùn)老方塊(44793227)21:02:04是的001-培訓(xùn)老方塊(44793227)21:02:24AWR,有個(gè)指標(biāo),都是以 100%為完美的目標(biāo)001-培訓(xùn)老方塊(44793227)21:02:34其中就有這些內(nèi)存001-培訓(xùn)老方塊(44793227)21:02:40中率L87-小安(446464087) 21:02:42內(nèi)001-培訓(xùn)老方塊(44

50、793227)21:02:56發(fā)錯(cuò)圖了001-培訓(xùn)老方塊(44793227)21:03:00001-培訓(xùn)老方塊(44793227)21:03:15DATA DICTIONARY CACHE 翻譯成中文稱數(shù)據(jù)庫高速緩存001-培訓(xùn)老方塊(44793227)21:03:26它存放了最近最常使用的磁盤數(shù)據(jù)塊的副本(默認(rèn)池),我們的業(yè)務(wù)數(shù)據(jù)就存放在此。001-培訓(xùn)老方塊(44793227)21:03:38數(shù)據(jù)庫高速緩存的內(nèi)容如下:001-培訓(xùn)老方塊(44793227)21:03:46 通過將硬盤數(shù)據(jù)預(yù)取到數(shù)據(jù)庫高速緩存,我們能夠更快的獲取、更新、刪除數(shù)據(jù),因?yàn)橛?jì)算機(jī)執(zhí)行是 在內(nèi)存中執(zhí)行的。001-培訓(xùn)

51、老方塊(44793227)21:04:16內(nèi)存速度快,而且必須要調(diào)用到內(nèi)存才能執(zhí)行。001-培訓(xùn)老方塊(44793227)21:04:33大家在本科還會(huì)學(xué)到一種技術(shù)L87-小安(446464087) 21:04:51001-培訓(xùn)老方塊(44793227)21:04:55如果某個(gè) SQL 經(jīng)常執(zhí)行,他們的結(jié)果集也可以保存到內(nèi)存001-培訓(xùn)老方塊(44793227)21:05:21這樣的話,執(zhí)行相同 SQL,直接可以從結(jié)果集的緩存中直接取出結(jié)果L54-梁耀(534133204) 21:05:34更快了001-培訓(xùn)老方塊(44793227)21:05:37這就不需要L24-才(423324322) 21:05:38SQL,也不需要執(zhí)行 SQL 了這都行啊001-培訓(xùn)老方塊(44793227)21:05:40非常快001-培訓(xùn)老方塊(44793227)21:05:53這項(xiàng)技術(shù)叫“結(jié)果緩存”001-培訓(xùn)老方塊(44793227)21:06:25還有很多技術(shù)來處理海量數(shù)據(jù)庫001-培訓(xùn)老方塊(44793227)21:06:32比如 exadataL54-梁耀(534133204) 21:06:43這需要人為的設(shè)置吧001-培訓(xùn)老方塊(447932

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論