freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

oracle體系結(jié)構(gòu)-在線瀏覽

2024-08-09 08:42本頁(yè)面
  

【正文】 orms開(kāi)發(fā)的應(yīng)用程序時(shí),這個(gè)工具或應(yīng)用程序就被作為一個(gè)用戶進(jìn)程來(lái)執(zhí)行。在專用連接的情況下(也是默認(rèn)),當(dāng)一個(gè)用戶登錄Oracle服務(wù)器時(shí)(如在SQL*Plus的提示下輸入用戶名和密碼),如果登錄成功(即用戶名和密碼都準(zhǔn)確無(wú)誤),Oracle就在服務(wù)器所運(yùn)行的計(jì)算機(jī)上創(chuàng)建一個(gè)服務(wù)器進(jìn)程。用戶進(jìn)程與服務(wù)器進(jìn)程是一對(duì)一的關(guān)系。就好像一個(gè)大富豪想炒股票,但又不懂股票市場(chǎng)的運(yùn)作,于是他請(qǐng)了一位股票經(jīng)紀(jì)人。一個(gè)用戶每次登錄Oracle服務(wù)器,如果成功,該用戶就與Oracle服務(wù)器建立了連接,而這種連接又叫做會(huì)話。一個(gè)數(shù)據(jù)庫(kù)用戶可能同時(shí)有多個(gè)會(huì)話存在,即用相同的用戶名和密碼同時(shí)登錄多次。與Oracle服務(wù)器(server)的3種安裝方式相對(duì)應(yīng),一個(gè)數(shù)據(jù)庫(kù)用戶可能用以下3種方式之一與Oracle服務(wù)器連接。(2)客戶端服務(wù)器(clientserver)(兩層模型)方式:用戶進(jìn)程與Oracle服務(wù)器之間的通信是通過(guò)網(wǎng)絡(luò)協(xié)議(如TCP/IP)來(lái)完成的。例如,用戶使用瀏覽器通過(guò)網(wǎng)絡(luò)運(yùn)行NT服務(wù)器上的應(yīng)用程序,而NT服務(wù)器又從運(yùn)行在UNIX主機(jī)上的Oracle數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。除了這種連接外,在聯(lián)機(jī)事務(wù)處理(online transaction processing,OLTP)系統(tǒng)的配置時(shí)還有另外的一種連接,它在Oracle有關(guān)這種連接在Oracle的網(wǎng)絡(luò)和調(diào)優(yōu)的書(shū)籍中介紹。與SGA不同,PGA是一個(gè)私有的內(nèi)存區(qū),是不能共享的,是只屬于一個(gè)進(jìn)程的。在專用服務(wù)器進(jìn)程的配置情況下,程序全局區(qū)包括了以下結(jié)構(gòu):(1)排序區(qū)(sort area):用于處理SQL語(yǔ)句所需的排序。(3)會(huì)話信息區(qū)(session information):包括了會(huì)話的用戶權(quán)限和優(yōu)化統(tǒng)計(jì)信息。如果是共享服務(wù)器進(jìn)程或多線程的配置,以上這些結(jié)構(gòu)除了堆棧區(qū)外大部分將存在SGA中。 Oracle執(zhí)行SQL查詢語(yǔ)句的步驟如果用戶在SQL*Plus下輸入了如下的查詢語(yǔ)句:SELECT * FROM dept。查詢語(yǔ)句與其他的SQL語(yǔ)句有所不同,如果一個(gè)查詢語(yǔ)句執(zhí)行成功,它要返回查詢的結(jié)果。查詢語(yǔ)句的處理主要包括以下3個(gè)階段:編譯(parse)、執(zhí)行(execute)和提取數(shù)據(jù)(fetch)。 首先在共享池中搜索是否有相同的SQL語(yǔ)句(正文),如果沒(méi)有就進(jìn)行后續(xù)的處理。 檢查該SQL語(yǔ)句的語(yǔ)法是否正確。 通過(guò)查看數(shù)據(jù)字典來(lái)檢查表和列的定義。 對(duì)所操作的對(duì)象加編譯鎖(parse locks)以便在編譯語(yǔ)句期間這些對(duì)象的定義不能被改變。 檢查所引用對(duì)象的用戶權(quán)限。 生成執(zhí)行該SQL語(yǔ)句所需的優(yōu)化的執(zhí)行計(jì)劃(執(zhí)行步驟)。 將SQL語(yǔ)句和執(zhí)行計(jì)劃裝入共享的SQL區(qū)。如果不正確,就返回錯(cuò)誤。l 提取數(shù)據(jù)(fetch):Oracle服務(wù)器進(jìn)程選擇所需的數(shù)據(jù)行,并在需要時(shí)將其排序,最后將結(jié)果返回給用戶(進(jìn)程)。服務(wù)器進(jìn)程將SQL(也可能是PL/SQL)語(yǔ)句的正文和編譯后的代碼(parsed code)以及執(zhí)行計(jì)劃都放在共享池(shared pool)的庫(kù)高速緩存中。U要想共享SQL或PL/SQL語(yǔ)句,第一,庫(kù)高速緩存(library cache)要足夠大,因?yàn)橹挥羞@樣要共享的SQL或PL/SQL語(yǔ)句才不會(huì)很快地淘汰出內(nèi)存。這里通過(guò)以下的實(shí)例來(lái)進(jìn)一步解釋這一點(diǎn)。 和select * from emp where sal = 1501??梢酝ㄟ^(guò)使用綁定變量的方式來(lái)重寫以上的SQL語(yǔ)句,如下:select * from emp where sal = amp。這個(gè)語(yǔ)句就是可以共享的通用代碼,因?yàn)樽兞坎皇窃诰幾g階段而是在運(yùn)行階段賦值的。那么Oracle又是怎樣有效地管理庫(kù)高速緩存(library cache)的呢?Oracle是使用一個(gè)稱為L(zhǎng)RU(least recently used)的隊(duì)列(list)或算法(algorithm)來(lái)實(shí)現(xiàn)對(duì)庫(kù)高速緩存的管理的。這樣那些長(zhǎng)時(shí)間沒(méi)使用過(guò)的內(nèi)存塊將自然地移到LRU隊(duì)列的尾部而被最先使用。不過(guò)Oracle并沒(méi)有給出直接設(shè)置庫(kù)高速緩存大小的方法,只能通過(guò)設(shè)置共享池的大小來(lái)間接地設(shè)置庫(kù)高速緩存的大小。當(dāng)Oracle在執(zhí)行SQL語(yǔ)句時(shí),服務(wù)器進(jìn)程將把數(shù)據(jù)文件、表、索引、列、用戶和其他的數(shù)據(jù)對(duì)象的定義和權(quán)限的信息放入數(shù)據(jù)字典高速緩存。因?yàn)橐陨纤f(shuō)的這些信息都是存在Oracle數(shù)據(jù)庫(kù)的數(shù)據(jù)字典中,這也可能就是該部分內(nèi)存叫做數(shù)據(jù)字典高速緩存的原因。不過(guò)與庫(kù)高速緩存一樣,Oracle并沒(méi)有給出直接設(shè)置數(shù)據(jù)字典高速緩存大小的方法,只能通過(guò)設(shè)置共享池的大小來(lái)間接地設(shè)置數(shù)據(jù)字典高速緩存的大小。9i之前的版本,可以通過(guò)修改參數(shù)文件中的SHARED_POOL_ SIZE的值來(lái)改變共享池的大小,但一定要重新啟動(dòng)Oracle數(shù)據(jù)庫(kù)。系統(tǒng)已更改。這個(gè)參數(shù)將在以后的章節(jié)中詳細(xì)地介紹。l 沒(méi)有陰影的內(nèi)容為要輸入的SQL語(yǔ)句或SQL*Plus命令等。l 陰影中的內(nèi)容為系統(tǒng)顯示(輸出)的結(jié)果?!?。提示:即使把共享池設(shè)置得足夠大并且所使用的SQL或PL/SQL語(yǔ)句也是能共享的代碼,Oracle也并不能一定使用內(nèi)存(共享池)中的代碼。 數(shù)據(jù)庫(kù)高速緩沖區(qū)(database buffer cache)和庫(kù)高速緩存(libarary cache)不一樣如果用戶發(fā)出了以下的SQL語(yǔ)句:SELECT * FROM emp,Oracle又是怎樣提取數(shù)據(jù)庫(kù)中的數(shù)據(jù)呢?服務(wù)器進(jìn)程將首先在數(shù)據(jù)庫(kù)高速緩沖區(qū)(database buffer cache)中搜尋所需的數(shù)據(jù),如果找到了就直接使用而不進(jìn)行磁盤操作,如果沒(méi)找到就將進(jìn)行磁盤操作把數(shù)據(jù)文件中的數(shù)據(jù)讀入到數(shù)據(jù)庫(kù)高速緩沖區(qū)中。Oracle也是使用一個(gè)叫做LRU(least recently used)的隊(duì)列(list)或算法(algorithm)來(lái)實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)高速緩沖區(qū)的管理。其中DB_BLOCK_SIZE為Oracle數(shù)據(jù)塊(內(nèi)存緩沖區(qū))的大小,在Oracle數(shù)據(jù)庫(kù)中內(nèi)存和外存的數(shù)據(jù)塊的大小是相同的。數(shù)據(jù)庫(kù)高速緩沖區(qū)大小為這兩個(gè)參數(shù)的乘積。因此多數(shù)情況下只能通過(guò)改變DB_BLOCK_BUFFERS的值來(lái)調(diào)整數(shù)據(jù)庫(kù)高速緩沖區(qū)大小。在Oracle 9i或以后的版本中,Oracle引入了另一個(gè)參數(shù)DB_CACHE_SIZE,這個(gè)參數(shù)是一個(gè)動(dòng)態(tài)參數(shù),即可以在數(shù)據(jù)庫(kù)運(yùn)行時(shí)動(dòng)態(tài)地改變?cè)搮?shù)。系統(tǒng)已更改。內(nèi)存緩沖區(qū)顧問(wèn)一共有3種狀態(tài):(1)ON:該工具打開(kāi),為該工具分配內(nèi)存并進(jìn)行統(tǒng)計(jì)信息的收集。(2)READY:該工具關(guān)閉,為該工具分配內(nèi)存但不進(jìn)行統(tǒng)計(jì)信息的收集,因此沒(méi)有CPU的開(kāi)銷。可以通過(guò)修改初始化參數(shù)DB_CACHE_ADVICE的值來(lái)改變?cè)摴ぞ叩臓顟B(tài)。例如可以利用類似于例13的SQL語(yǔ)句來(lái)查看它的狀態(tài):例13SQL select id, name, block_size, advice_status 2 from v$db_cache_advice。 此時(shí),例13的顯示結(jié)果表明了內(nèi)存緩沖區(qū)顧問(wèn)是在開(kāi)啟狀態(tài)。提示:顯示結(jié)果中的…表示省略了一些行的顯示。系統(tǒng)已更改。 ID NAME BLOCK_SIZE ADV 3 DEFAULT 4096 OFF 3 DEFAULT 4096 OFF 3 DEFAULT 4096 OFF 3 DEFAULT 4096 OFF 3 DEFAULT 4096 OFF … 已選擇20行。 重做日志緩沖區(qū)(redo log buffer)從理論上來(lái)講,如果數(shù)據(jù)庫(kù)不會(huì)崩潰,根本沒(méi)有必要引入重做日志緩沖區(qū)(redo log buffer)。Oracle在使用任何DML或DDL操作改變數(shù)據(jù)之前都將恢復(fù)所需的信息,即在寫數(shù)據(jù)庫(kù)高速緩沖區(qū)之前,先寫入重做日志緩沖區(qū)。以下是Oracle執(zhí)行UPDATE語(yǔ)句的步驟:(1)如果數(shù)據(jù)和回滾數(shù)據(jù)不在數(shù)據(jù)庫(kù)高速緩沖區(qū)中,Oracle服務(wù)器進(jìn)程將把它們從數(shù)據(jù)文件中讀到數(shù)據(jù)庫(kù)高速緩沖區(qū)中。(3)Oracle服務(wù)器進(jìn)程將數(shù)據(jù)的變化信息和回滾所需的信息都記錄在重做日志緩沖 區(qū)中。之后
點(diǎn)擊復(fù)制文檔內(nèi)容
范文總結(jié)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1