日韩av片子_国产自在自线午夜精品视频在_使劲快高潮了国语对白在线_久久免费毛片大全_激情丁香综合_欧美成人精品欧美一级乱黄码

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁 > IT資訊 > 數(shù)據(jù)庫 > Oracle數(shù)據(jù)庫設(shè)計(jì)提升性能的五大原則

Oracle數(shù)據(jù)庫設(shè)計(jì)提升性能的五大原則

2017-02-06 10:19:48 | 來源:中培企業(yè)IT培訓(xùn)網(wǎng)

眾所周知,數(shù)據(jù)庫設(shè)計(jì)的好壞直接關(guān)系到數(shù)據(jù)庫運(yùn)行的效率。中培偉業(yè)《Oracle數(shù)據(jù)庫管理與性能調(diào)優(yōu)》課程培訓(xùn)專家賈老師指出,對于提升數(shù)據(jù)庫性能來說,合理的數(shù)據(jù)庫設(shè)計(jì),比升級服務(wù)器的硬件配置,還要來的有效。但是,賈老師無論是在跟同事合作,又或者是在論壇上跟相關(guān)同行交流的時(shí)候,總是會(huì)發(fā)現(xiàn)有些人有一些不好的數(shù)據(jù)庫設(shè)計(jì)習(xí)慣,影響了數(shù)據(jù)庫的性能,增加了數(shù)據(jù)庫管理員的工作量。

賈老師認(rèn)為,為了提升數(shù)據(jù)庫的性能,在Oracle數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,應(yīng)該遵循以下五大原則。

  一:在小型表上不要建立索引

毋庸置疑,索引可以提高數(shù)據(jù)庫查詢的效率。但是,俗話說,過之則不及。索引也必須用在合時(shí)的地方。如果索引設(shè)置不當(dāng),不但不會(huì)提升數(shù)據(jù)庫的性能,反而會(huì)起到相反的作用。如在小型數(shù)據(jù)庫上設(shè)置索引,而且這些表用戶更改的比較頻繁。如員工基本信息表,就是簡單的不超過十個(gè)字段。這個(gè)表用戶需要經(jīng)常的進(jìn)行插入與刪除操作。當(dāng)進(jìn)行這些變更作業(yè)的時(shí)候,需要對索引進(jìn)行維護(hù)。而這個(gè)維護(hù)的工作量可能比掃描表空間消耗更多的存儲(chǔ)空間。從而不但起步到改善數(shù)據(jù)庫性能的作用,反而是在拖后腿。

所以,在數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,要做到的第一個(gè)戒條就是,不要再用戶經(jīng)常更改的小型表上建立索引。否則的話,是得不償失的。

  二:不要用用戶的鍵

如我們在設(shè)計(jì)一個(gè)ERP系統(tǒng)數(shù)據(jù)庫的時(shí)候,有一張銷售訂單表。在這張表中,有一個(gè)銷售訂單號。那么我們能否利用這個(gè)單號作為關(guān)聯(lián)其他表的外鍵呢?如在銷售出貨單上,需要關(guān)聯(lián)到銷售訂單。這個(gè)時(shí)候,我們能否把銷售訂單單號作為跟出貨單關(guān)聯(lián)的關(guān)鍵字呢?

答案是可以的,但是不是最優(yōu)選擇。我們可以看一下ERP的后臺(tái)數(shù)據(jù)庫。在銷售訂單表上,除了銷售訂單號這個(gè)唯一表示銷售訂單紀(jì)錄的字段外,還有一個(gè)字段就是銷售訂單ID。在前臺(tái)的出貨單界面上雖然顯示的是銷售訂單號碼,但是,在后臺(tái)卻存儲(chǔ)著的是銷售訂單ID。也就是說,數(shù)據(jù)庫不是以用戶的鍵作為主鍵,而是采用了數(shù)據(jù)庫自動(dòng)維護(hù)的單據(jù)ID這個(gè)字段。

為什么要這么設(shè)計(jì)呢?這就是賈老師今天要談的第二個(gè)戒條,不要用用戶的鍵。通常情況下,不要選擇用戶可編輯的字段作為外鍵或者主鍵。因?yàn)檫@會(huì)增加我們額外的工作量。

如果我們把銷售訂單號作為外鍵的話,則在創(chuàng)建銷售訂單紀(jì)錄后還要對用戶編輯字段的行為施加限制,如判斷是否違反外鍵的強(qiáng)制性規(guī)則等等。有些系統(tǒng)把銷售訂單號設(shè)置為外鍵的話,則往往是把這個(gè)字段設(shè)置為系統(tǒng)自動(dòng)編號,并且用戶不可更改。可是,在實(shí)際工作中,企業(yè)員工往往需要編輯這個(gè)字段。員工需要編輯這些不可編輯的字段時(shí)系統(tǒng)缺乏靈活性的缺陷就體現(xiàn)出來了。而且,當(dāng)用戶輸入完數(shù)據(jù)保存的時(shí)候再提示紀(jì)錄不符合要求,則也不是很人性化的設(shè)計(jì)。

另外,我們還必須為此設(shè)計(jì)一些檢測和糾正鍵沖突的方法。如考慮這個(gè)外鍵的直是否在其他數(shù)據(jù)表中存在等等。雖然這通常只需要我們花點(diǎn)時(shí)間就可以搞定。但是從數(shù)據(jù)庫性能上來說,這個(gè)代價(jià)就比較大了。再則,如此的話,就不能夠很好的把系統(tǒng)的基本數(shù)據(jù)跟企業(yè)員工的數(shù)據(jù)實(shí)現(xiàn)很好的隔離。

  三:不要用商務(wù)規(guī)則來實(shí)現(xiàn)數(shù)據(jù)的完整性

數(shù)據(jù)的完整性有好幾種實(shí)現(xiàn)方法。如可以通過數(shù)據(jù)庫約束實(shí)現(xiàn)數(shù)據(jù)完整性;也可以通過前臺(tái)系統(tǒng)的商務(wù)規(guī)則來實(shí)現(xiàn)數(shù)據(jù)的完整性。不過,賈老師這里要建議的是,在一些大型的數(shù)據(jù)庫中,不要試圖通過商務(wù)規(guī)則來實(shí)現(xiàn)數(shù)據(jù)的完整性,而盡可能的通過數(shù)據(jù)庫的約束來實(shí)現(xiàn)。因?yàn)槿敉ㄟ^商務(wù)規(guī)則來實(shí)現(xiàn)完整性,往往會(huì)出現(xiàn)一些莫名其妙的錯(cuò)誤。

  四:在可能的情況下,不要讓前臺(tái)應(yīng)用程序直接訪問數(shù)據(jù)表

其實(shí),在數(shù)據(jù)庫基礎(chǔ)表與前臺(tái)應(yīng)用程序之間,還有一個(gè)很好的“中間人”,那就是視圖。試圖是數(shù)據(jù)庫基礎(chǔ)表的一個(gè)抽象。他除了可以保障數(shù)據(jù)的質(zhì)量外,還可以有效的訪問前臺(tái)應(yīng)用程序?qū)τ跀?shù)據(jù)的非法訪問。所以,一些安全性級別比較高的數(shù)據(jù)庫系統(tǒng),在數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,往往會(huì)在數(shù)據(jù)庫和前臺(tái)應(yīng)用程序代碼之間提供“視圖”這個(gè)中間人,讓其作為基礎(chǔ)表的“新聞發(fā)言人”。如此,前臺(tái)應(yīng)用程序在沒有必要的情況下,可以不直接訪問數(shù)據(jù)表,而是通過視圖來對表實(shí)現(xiàn)間接的訪問。

如在進(jìn)行數(shù)據(jù)導(dǎo)入程序設(shè)計(jì)的時(shí)候,通過視圖來實(shí)現(xiàn)則是一個(gè)很理想的方法。如用戶現(xiàn)在要導(dǎo)入產(chǎn)品信息,包括產(chǎn)品基本信息、供應(yīng)商信息、價(jià)格信息等等。這些信息在數(shù)據(jù)庫中往往包含在三種表中,分別為產(chǎn)品基本信息表、供應(yīng)商信息表、產(chǎn)品價(jià)格信息表。若前臺(tái)應(yīng)用程序直接訪問基礎(chǔ)表的話,就需要分別訪問這三張基礎(chǔ)表。這不但效率比較低,而且也不容易實(shí)現(xiàn)數(shù)據(jù)的完整性。此時(shí),我們就可以利用視圖,把一些必須要填入的字段組合在一張可更新視圖中。如此,前臺(tái)應(yīng)用程序只需要訪問一個(gè)數(shù)據(jù)庫對象即可。

再者,在數(shù)據(jù)庫報(bào)表設(shè)計(jì)上,更是要通過視圖來實(shí)現(xiàn)。而不要通過傳遞一段SQL代碼來查詢基礎(chǔ)表。這對于數(shù)據(jù)的安全性會(huì)帶來比較大的威脅。

所以,第四條法則就是,在可能的情況下,不要讓前臺(tái)應(yīng)用程序直接訪問數(shù)據(jù)表。

  五:不要一直讓用戶輸入數(shù)據(jù)

有些字段其實(shí)不一定要讓用戶輸入,只需要用戶選擇即可。如在人事管理系統(tǒng)中,企業(yè)員工所屬的民族、職位、省份等等就沒有必要讓用戶手工輸入。而可以通過列表的形式讓員工來進(jìn)行選擇。這種手段,是提高數(shù)據(jù)完整性的最佳方式之一。若能夠給用戶提供一個(gè)詳細(xì)的列表供其選擇,這樣將減少鍵入代碼的錯(cuò)誤,同時(shí)提高數(shù)據(jù)庫的一致性;也可以提高用戶界面的友好性。

所以,在數(shù)據(jù)庫設(shè)計(jì)的時(shí)候,盡量使用列表字段來供用戶選擇。若連省份等等字段都要用戶手工輸入的話,則我們在數(shù)據(jù)庫完整性所花費(fèi)的時(shí)間,就要很多。如在數(shù)據(jù)保存的時(shí)候,都要去判斷用戶輸入的數(shù)據(jù)是否合乎完整性的規(guī)則。這顯然工作量要比設(shè)計(jì)一個(gè)列表字段多得多。

故數(shù)據(jù)庫設(shè)計(jì)的第五條法則就是不要老是讓用戶手工輸入數(shù)據(jù)。提供列表讓用戶進(jìn)行選擇,用戶不僅可以提高效率,我們也可以省事,同時(shí),也能夠保障數(shù)據(jù)的準(zhǔn)確率。

標(biāo)簽: Oracle
主站蜘蛛池模板: 欧美一区三区三区高中清蜜桃 | 午夜老司机在线观看 | 国产成人青青热久免费精品 | 国产精品第二页 | 亚洲欧美精品AAAAAA片 | 人人澡人人澡人人看添AV | 中文字幕一区二区三区四区在线 | 伊人久久久精品区aaa片 | 欧美顶级毛片在线播放 | www.人人草| 黄色毛片小说 | 神马午夜一区二区 | 欧洲极品少妇 | 日本一级毛片免费看 | 亚洲伊人久久大香线蕉结合 | 国产日韩视频在线播放 | 亚洲国产一区二区精品无码 | 一区二区三区区四区播放视频在线观看 | av网站在线看 | 日韩精品二区 | 欧美激情在线一区二区 | 日韩一区二区三区四区区区 | 国产吹潮视频在线观看 | 欧美白嫩magnet | 日日噜噜噜夜夜爽爽国产 | av一级免费 | 日本看片一区二区三区高清 | 日日躁夜夜躁狠狠躁超碰97 | 国产六九视频 | 亚洲九一| 久久香蕉三级国产黑人 | baoyu168成人免费视频 | 午夜成在线www | 日本精品一二三 | 亚洲欧美人成网站aaa | 扒开两腿中间缝流白浆在线看 | 天天干干夜夜 | av免费久久| 国产一级做a爱片在线看免 欧美性受xxxx黑人猛交88 | 日韩欧美一级黄色片 | 少妇人妻无码专区在线视频 |