日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle结构设计

發(fā)布時(shí)間:2024/4/14 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle结构设计 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

?盡管Oracle系統(tǒng)本身已經(jīng)提供了若干種對(duì)系統(tǒng)性能進(jìn)行調(diào)節(jié)的技術(shù),但是,假如數(shù)據(jù)庫設(shè)計(jì)本身就有問題非凡是在結(jié)構(gòu)上設(shè)計(jì)得尤其糟糕,那你縱有天大的本事又能奈何? 因此,Oracle數(shù)據(jù)庫的設(shè)計(jì)者完全有必要弄清楚(從項(xiàng)目著手設(shè)計(jì)開始)該如何創(chuàng)建穩(wěn)固的Oracle數(shù)據(jù)結(jié)構(gòu),在保證可維護(hù)性和可擴(kuò)展性的同時(shí)以最快的速度從數(shù)據(jù)庫中獲取信息。???? 讓我們把籠罩在數(shù)據(jù)庫技術(shù)外圍的復(fù)雜理論和存心不讓人明白的技術(shù)行話扔一邊去,其實(shí),說白了你就只需要記住一點(diǎn),這也是牽扯到數(shù)據(jù)庫性能的最重要最簡單因素:磁盤I/O。磁盤I/O正是系統(tǒng)消耗最大的的Oracle數(shù)據(jù)庫操作。Oracle設(shè)計(jì)專家在設(shè)計(jì)數(shù)據(jù)體系結(jié)構(gòu)的時(shí)候務(wù)必記得:在獲取所需要的信息時(shí)一定要想盡辦法把磁盤訪問量降到最低!???? 這篇文章提出了一些Oracle數(shù)據(jù)庫數(shù)據(jù)體系結(jié)構(gòu)設(shè)計(jì)方面的技巧,有了它們,在創(chuàng)造出易于維護(hù)和擴(kuò)展的設(shè)計(jì)方案同時(shí)還能讓數(shù)據(jù)庫保持在最優(yōu)化的性能水準(zhǔn)之上。???? 結(jié)構(gòu)設(shè)計(jì)技巧???? Oracle產(chǎn)品中有好些可以降低SQL查詢磁盤I/O量的工具。下面就是一些能極大改進(jìn)Oracle 系統(tǒng)性能的結(jié)構(gòu)設(shè)計(jì)問題。???? 采用多種大小尺度的數(shù)據(jù)塊???? 你完全可以故意地把不同的表和索引結(jié)構(gòu)映射到具有不同大小的表空間。這種分配方案的設(shè)計(jì)依據(jù)是表內(nèi)數(shù)據(jù)行的平均長度以及整個(gè)數(shù)據(jù)庫內(nèi)的數(shù)據(jù)訪問模式。Oracle9i給你提供了以下幾種選擇:2K、4K、16K甚至32K的表空間大小。這一招的實(shí)質(zhì)是讓表和索引僅需一次磁盤I/O就可以獲取所有關(guān)聯(lián)數(shù)據(jù)行的信息。???? 預(yù)先計(jì)算復(fù)雜的SQL查詢???? Oracle提供了具體化的視圖和VARRAY表,通過它們就可以預(yù)建復(fù)雜的查詢并匯集到單行表內(nèi),這樣即時(shí)獲取信息可就快多了。即時(shí)匯集是一種優(yōu)異的Oracle設(shè)計(jì)。???? 采用內(nèi)存數(shù)據(jù)緩沖???? 你應(yīng)該知道Oracle9i答應(yīng)開辟很大的內(nèi)存區(qū)域以便緩沖常用索引行的信息。常用索引信息的緩沖應(yīng)該是一個(gè)主要的專業(yè)設(shè)計(jì)目標(biāo),因?yàn)閮?nèi)存訪問的速度可是磁盤訪問速度的至少1萬倍。Oracle數(shù)據(jù)塊緩沖區(qū)越大,SQL查詢的執(zhí)行速度就越快。內(nèi)存數(shù)據(jù)緩沖區(qū)的大小對(duì)Oracle的性能具有直接的影響,假如數(shù)據(jù)緩沖區(qū)緩沖了全部數(shù)據(jù)系統(tǒng)就可以達(dá)到最快的運(yùn)行速度。???? 購買更快的處理器???? Oracle數(shù)據(jù)庫服務(wù)器的CPU速度對(duì)數(shù)據(jù)庫性能有直接影響。高性能64位CPU的運(yùn)行速度通常比32位處理器快10次。目前幾乎所有的主要平臺(tái)都可以采用64位處理器了,其中包括:???? Windows—Intel安騰處理器
??? HP—PA-8000處理器
??? Solaris—500-MHz UltrASParc-iie處理器
??? IBM AIX—RS/6000 PowerPC處理器
??? 采用64位版本的Oracle???? 強(qiáng)烈建議你在裝備64位CPU體系結(jié)構(gòu)的專門服務(wù)器平臺(tái)上安裝和運(yùn)行64位的Oracle數(shù)據(jù)庫系統(tǒng)。Oracle的64位版本可以創(chuàng)建大規(guī)模的SGA區(qū)域以及通常需要超過20GB內(nèi)存數(shù)據(jù)緩沖區(qū)的大規(guī)模項(xiàng)目。32位Oracle數(shù)據(jù)庫的一個(gè)嚴(yán)重缺陷就是SGA最大只能開辟1.7GB。???? 對(duì)索引使用大數(shù)據(jù)塊使磁盤I/O減到最小???? Oracle索引訪問在Oracle數(shù)據(jù)庫大小為16K和32K的情況下性能表現(xiàn)最好。你應(yīng)該查詢相應(yīng)的應(yīng)用程序和操作系統(tǒng)文檔,為你的計(jì)算環(huán)境創(chuàng)建最大的索引表空間。???? 使用Oracle并行查詢???? 所有的數(shù)據(jù)訪問都應(yīng)該經(jīng)過調(diào)整避免大規(guī)模表掃描或者全表掃描,但在很多情況下都會(huì)有這樣的查詢要求,怎么辦呢?你不妨保證所有的全表掃描都充分利用了Oracle并行查詢機(jī)制以提高查詢性能。???? 選擇適當(dāng)?shù)腟QL優(yōu)化???? 優(yōu)化器模式的選擇對(duì)Oracle SQL性能具有要害的影響。對(duì)Oracle9i而言,所有查詢中大約有一半左右在基于規(guī)則的優(yōu)化條件下會(huì)運(yùn)行得更快一些;另外一半則在基于開銷的優(yōu)化條件運(yùn)行得最快。???? 包固定
??? 所有經(jīng)常被引用的PL/SQL包都應(yīng)該使用dbms_shared_pool.keep過程固定到共享池。這樣做將極大地加快Oracle PL/SQL的執(zhí)行速度。???? 在存儲(chǔ)過程內(nèi)設(shè)計(jì)所有的數(shù)據(jù)訪問???? 最重要的設(shè)計(jì)問題之一把所有的數(shù)據(jù)庫訪問代碼都放到PL/SQL存儲(chǔ)過程中。???? 存儲(chǔ)過程設(shè)計(jì)技巧???? Oracle設(shè)計(jì)目標(biāo)之一是盡可能地把所有Oracle處理代碼都封裝進(jìn)存儲(chǔ)過程。這樣做可以獲得相當(dāng)大的益處,主要同性能和可維護(hù)性有關(guān)。你應(yīng)該把自己的工作焦點(diǎn)置于這一目標(biāo)之上。???? 數(shù)據(jù)同行為耦合???? 許多數(shù)據(jù)庫治理員采用Oracle8的成員方法實(shí)現(xiàn)存儲(chǔ)過程與數(shù)據(jù)庫對(duì)象的緊密耦合。其它人則習(xí)慣于采用命名規(guī)范。例如,假設(shè)所有同customer表有關(guān)的行為都冠以該表的名字作為前綴(customer.hire、customer.give_raise等),那么你就可以查詢數(shù)據(jù)字典列出某表關(guān)聯(lián)的所有行為(select * from dba_objects where owner = 'CUSTOMER')而你能很輕易地辨別和重用代碼。???? 代碼隔離???? 因?yàn)樗械腟QL都從外部程序移入了存儲(chǔ)過程,所以應(yīng)用程序也就不外乎只涉及到對(duì)存儲(chǔ)過程的調(diào)用。正因如此,內(nèi)外交換某一個(gè)數(shù)據(jù)庫就很簡單了。???? 更快的SGA存取???? 存儲(chǔ)過程和觸發(fā)器函數(shù)的運(yùn)行速度為什么快于傳統(tǒng)數(shù)據(jù)庫操作代碼呢?主要原因要涉及到Oracle SGA。在一個(gè)過程被裝入SGA的共享池以后,它會(huì)一直“呆”到被調(diào)出內(nèi)存給其他存儲(chǔ)過程騰出空間為止。把過程調(diào)出內(nèi)存的原則就是所謂的LRU算法。一旦裝入了分享池的內(nèi)存區(qū),過程的執(zhí)行速度可就快多了,這里的花招就是想辦法阻止共享池承受太大的負(fù)載,因?yàn)樵S多存儲(chǔ)過程會(huì)競爭有限的共享池內(nèi)存量。再次重申:只要存儲(chǔ)過程裝入了共享池就要等到被調(diào)出內(nèi)存為止。連續(xù)的存儲(chǔ)過程執(zhí)行就比外部代碼更快。???? 小結(jié)???? Oracle設(shè)計(jì)師的標(biāo)志之一就是有能力創(chuàng)造出穩(wěn)固、可維護(hù)和高效率的全面體系結(jié)構(gòu)。今天的 Oracle設(shè)計(jì)專家需要設(shè)計(jì)出能支持每秒數(shù)千宗交易的系統(tǒng)同時(shí)還能實(shí)現(xiàn)快速的響應(yīng)時(shí)間、簡易的維護(hù)以及可擴(kuò)展性。只要全面地了解Oracle9i 數(shù)據(jù)庫的特性,采用本文建議的技巧,你肯定能建立恰當(dāng)?shù)臄?shù)據(jù)模型結(jié)構(gòu)

超強(qiáng)干貨來襲 云風(fēng)專訪:近40年碼齡,通宵達(dá)旦的技術(shù)人生

總結(jié)

以上是生活随笔為你收集整理的oracle结构设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。