国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

數(shù)據(jù)庫優(yōu)化策略分析

2014-04-16 16:47:06于麗麗哈爾濱飛機(jī)工業(yè)集團(tuán)有限責(zé)任公司
關(guān)鍵詞:語句范式運(yùn)算

于麗麗/哈爾濱飛機(jī)工業(yè)集團(tuán)有限責(zé)任公司

數(shù)據(jù)庫優(yōu)化策略分析

于麗麗/哈爾濱飛機(jī)工業(yè)集團(tuán)有限責(zé)任公司

從范式優(yōu)化、索引優(yōu)化和查詢優(yōu)化三個(gè)方面對(duì)數(shù)據(jù)庫的優(yōu)化設(shè)計(jì)方法進(jìn)行分析探討。在邏輯設(shè)計(jì)階段,要按照范式優(yōu)化的具體要求來設(shè)計(jì)數(shù)據(jù)庫邏輯結(jié)構(gòu),比較其優(yōu)劣從而選擇更好的方案;在數(shù)據(jù)庫物理設(shè)計(jì)階段,在有關(guān)屬性或?qū)傩缘慕M合上建立索引時(shí)要根據(jù)索引優(yōu)化中的具體要求來進(jìn)行,使數(shù)據(jù)庫物理結(jié)構(gòu)得以優(yōu)化;在數(shù)據(jù)庫查詢階段,優(yōu)化數(shù)據(jù)查詢語句,以提高SQL語句的執(zhí)行效率。

數(shù)據(jù)庫;范式優(yōu)化;索引優(yōu)化;查詢優(yōu)化

一、引言

隨著數(shù)據(jù)庫應(yīng)用技術(shù)的不斷發(fā)展,人們對(duì)計(jì)算機(jī)化數(shù)據(jù)的需求性越來起強(qiáng)。不完善的數(shù)據(jù)庫對(duì)人們?nèi)粘5纳钣绊懺絹碓酱?,這樣就照成人們對(duì)數(shù)據(jù)庫的優(yōu)化設(shè)計(jì)日益關(guān)注起來。本文針對(duì)數(shù)據(jù)庫開發(fā)應(yīng)用中遇到幾種問題采取合適的方法進(jìn)行調(diào)整和優(yōu)化,使其更加適用于們對(duì)數(shù)據(jù)庫的應(yīng)用需求。

二、基于范式(NF)優(yōu)化數(shù)據(jù)庫

關(guān)系模式規(guī)范化的基本思想是消除關(guān)系模式中的數(shù)據(jù)冗余,消除數(shù)據(jù)依賴中的不合適的部分,解決數(shù)據(jù)插入、刪除進(jìn)發(fā)生的異?,F(xiàn)象。這就要求關(guān)系模式要滿足一定的條件。我們把關(guān)系模式規(guī)范化過程中不同程序的規(guī)范化要求設(shè)立的不同標(biāo)準(zhǔn)稱為范式。

需要符合第三范式,其原理是所有的非主屬性都不函數(shù)傳遞于主屬性。第三范式的運(yùn)用,不僅避免了由于頻繁的數(shù)據(jù)備份給相關(guān)操作帶來的不利影響,而且很好的保護(hù)了數(shù)據(jù)庫的各方面性能不受到損害,使其能夠正常的運(yùn)行。

運(yùn)用第三范式設(shè)計(jì)數(shù)據(jù)庫時(shí),往往力求改變數(shù)據(jù)庫的各方面性能。但是不是分解得越多越好,因?yàn)樵诓樵兩?,時(shí)間上要浪費(fèi)得更多。因此,對(duì)于時(shí)常要使用的表或者相關(guān)數(shù)據(jù),要對(duì)其結(jié)構(gòu)及性能進(jìn)行全面優(yōu)化和調(diào)整。

三、基于索引優(yōu)化數(shù)據(jù)庫

索引應(yīng)用于數(shù)據(jù)庫的主要目的是為了提高數(shù)據(jù)查詢的效率,而數(shù)據(jù)庫優(yōu)化查詢的重要方法之一是建立索引。建立合適的數(shù)據(jù)庫系統(tǒng)索引,就可以避免全表掃描,并減少由于連接查詢而造成的各種多余的開銷,有效提高數(shù)據(jù)庫的查詢速度,優(yōu)化了數(shù)據(jù)庫性能。然而在創(chuàng)建索引時(shí)也不由地增加了數(shù)據(jù)庫系統(tǒng)的時(shí)間和空間的開銷。所以在創(chuàng)建索引時(shí)應(yīng)注意與實(shí)際的數(shù)據(jù)庫查詢需求相結(jié)合,這樣才能真正實(shí)現(xiàn)基于索引的優(yōu)化數(shù)據(jù)庫。

1.索引基本概念。索引是一個(gè)單獨(dú)的、物理的數(shù)據(jù)結(jié)構(gòu),它是某個(gè)表中一列或若干列值的集合和相應(yīng)的指向表中物理標(biāo)識(shí)這些值的數(shù)據(jù)頁的邏輯指針清單。

索引提供指向存儲(chǔ)在表的指定列中的數(shù)據(jù)值的指針,然后根據(jù)您指定的排序順序?qū)@些指針排序。數(shù)據(jù)庫使用索引的方式與您使用書籍中的索引的方式很相似:它搜索索引以找到特定值,然后順指針找到包含該值的行。

2.創(chuàng)建合適并且高效的索引。創(chuàng)建合適的索引即是對(duì)所要?jiǎng)?chuàng)建的索引進(jìn)行有效的邏輯判斷,使所創(chuàng)建的索引對(duì)數(shù)據(jù)庫的工作效率的提高有所幫助。為了實(shí)現(xiàn)創(chuàng)建合適的索引,我們得考慮以下幾點(diǎn)要求:在編寫SQL程序時(shí),多注釋那些常用且對(duì)性能有影響的SQL語句,以便后來人能更好的理解并利用它,然后再判斷數(shù)據(jù)庫中哪些表中的字段要建立索引;第二,對(duì)數(shù)據(jù)庫中使用次數(shù)較多的表,數(shù)據(jù)量較大的表,較經(jīng)常和其他表進(jìn)行連接操作的表等,都要進(jìn)行特別的關(guān)注,因?yàn)檫@些表上的索引將對(duì)我們所編寫的SQL語句的性能產(chǎn)生深遠(yuǎn)的影響。

四、基于查詢優(yōu)化數(shù)據(jù)庫

查詢優(yōu)化是為了查詢選擇最有效的查詢計(jì)劃的過程。查詢優(yōu)化一方面在關(guān)系代數(shù)級(jí)進(jìn)行優(yōu)化,力圖找出與給定表達(dá)式等價(jià),但執(zhí)行效率更高的一個(gè)表達(dá)式。查詢優(yōu)化的另一方面涉及查詢語句處理策略的選擇,例如SQL語句的合理編寫。

1.關(guān)系代數(shù)表達(dá)式中的查詢優(yōu)化。關(guān)系系統(tǒng)的查詢優(yōu)化是關(guān)系數(shù)據(jù)庫管理系統(tǒng)實(shí)現(xiàn)的關(guān)鍵技術(shù),又是關(guān)系系統(tǒng)的優(yōu)點(diǎn)。因?yàn)椋脩糁灰岢觥案墒裁础?,不必指出“怎么干”。在關(guān)系代數(shù)表達(dá)式中,需要指出若干個(gè)關(guān)系的操作步驟。問題是怎樣做才能保證省時(shí)、省空間以及效率高,這就是查詢優(yōu)化的問題。需要注意的是,在關(guān)系代數(shù)運(yùn)算中,笛卡爾積、連接運(yùn)算最費(fèi)時(shí)間和空間,空間應(yīng)采用什么樣的策略,能夠節(jié)省時(shí)間空間,這就是優(yōu)化的準(zhǔn)則。具體地講:

(1)提早執(zhí)行選取運(yùn)算;

(2)合并乘積與其后的選擇運(yùn)算為連接運(yùn)算;

(3)將投影運(yùn)算和其前后的其他運(yùn)算同時(shí)進(jìn)行,以避免重復(fù)掃描關(guān)系;

(4)將投影運(yùn)算和其前后的二目運(yùn)算結(jié)合起來,便得沒有必要為去掉某些字段再掃描一遍關(guān)系;

(5)在執(zhí)行連接前對(duì)關(guān)系做適當(dāng)?shù)念A(yù)處理,就能快速地找到要連接的元組。

2.查詢優(yōu)化涉及查詢語句(SQL)的處理策略。

(1)應(yīng)盡可能不在where子句中使用“?。健边@種不等于的操作符,因?yàn)檫@樣會(huì)促使引擎進(jìn)行全表掃描,優(yōu)化器將無法通過合理的索引方式來確定將要查詢表的行數(shù),這將非常浪費(fèi)查詢的時(shí)間和空間。

(2)應(yīng)盡可能不在where子句中使用“or”操作符,這樣也會(huì)導(dǎo)致全表掃描而導(dǎo)致效率差;

(3)應(yīng)盡量避免使用通配符“%”開頭的模糊查詢。

(4)應(yīng)盡可能不在where子句中對(duì)字段進(jìn)行表達(dá)式運(yùn)算操作(如加減乘除),這也將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描從而降低了查詢效率。

(5)應(yīng)盡可能不在where子句中對(duì)字段進(jìn)行函數(shù)操作,這將導(dǎo)致引擎放棄使用索引而進(jìn)行全表掃描從而降低了查詢效率。

(6)查詢語句中使用exists是一個(gè)比較好的編寫習(xí)慣。

(7)應(yīng)盡量避免過于頻繁創(chuàng)建和刪除臨時(shí)表,這樣可以減少系統(tǒng)表資源的消耗,從而為別的基本表騰出更多的空間來進(jìn)行存儲(chǔ)與運(yùn)算。

五、結(jié)語

數(shù)據(jù)庫訪問是影響現(xiàn)代應(yīng)用程序性能和可伸縮性的一個(gè)關(guān)鍵點(diǎn)。雖然框架支持構(gòu)建數(shù)據(jù)訪問邏輯,仍然需要對(duì)數(shù)據(jù)訪問邏輯投入相當(dāng)?shù)木Γ员苊夥N種陷阱和問題。問題之關(guān)鍵是要理解應(yīng)用程序數(shù)據(jù)訪問層的動(dòng)態(tài)和特性的一切細(xì)節(jié)。優(yōu)化數(shù)據(jù)庫對(duì)提高計(jì)算機(jī)系統(tǒng)的可用性和效率,具有非常重要的意義,特別是在數(shù)據(jù)庫設(shè)計(jì)研發(fā)階段,對(duì)邏輯結(jié)構(gòu)和物理結(jié)構(gòu)進(jìn)行有效的優(yōu)化設(shè)計(jì),創(chuàng)建一個(gè)規(guī)則布局合理的數(shù)據(jù)庫,能獲得最小的系統(tǒng)開銷,能從根本上大大提高應(yīng)用系統(tǒng)的整體性能,對(duì)于以后的數(shù)據(jù)庫性能調(diào)整和利用都有非常大的益處。對(duì)數(shù)據(jù)庫的優(yōu)化,關(guān)系著我們對(duì)數(shù)據(jù)庫的應(yīng)用是否高效。本文在對(duì)數(shù)據(jù)庫優(yōu)化策略分析的基礎(chǔ)上提出了部分見解,有效的提高數(shù)據(jù)庫的應(yīng)用。

[1]微軟公司著.SQLServer 2005數(shù)據(jù)庫開發(fā)與實(shí)現(xiàn).高等教育出版社,2007年9月.

[2]陳志泊.數(shù)據(jù)庫原理及應(yīng)用教程.人民郵電出版社,2008年3月.[3]吳碌莉.數(shù)據(jù)庫優(yōu)化設(shè)計(jì)方法初探[J].廣西科學(xué)院學(xué)報(bào),2005年2月.

[4]蔣文沛.SQLServer 2005實(shí)用教程。人民郵電出版社,2009年6月.

猜你喜歡
語句范式運(yùn)算
重視運(yùn)算與推理,解決數(shù)列求和題
以寫促讀:構(gòu)建群文閱讀教學(xué)范式
甘肅教育(2021年10期)2021-11-02 06:14:08
范式空白:《莫失莫忘》的否定之維
重點(diǎn):語句銜接
有趣的運(yùn)算
孫惠芬鄉(xiāng)土寫作批評(píng)的六個(gè)范式
管窺西方“詩辯”發(fā)展史的四次范式轉(zhuǎn)換
精彩語句
“整式的乘法與因式分解”知識(shí)歸納
撥云去“誤”學(xué)乘除運(yùn)算
克拉玛依市| 高碑店市| 闽清县| 同心县| 宜州市| 江山市| 武山县| 宣威市| 唐山市| 茌平县| 尼勒克县| 习水县| 普洱| 定兴县| 淳安县| 栖霞市| 宜都市| 聂拉木县| 金塔县| 白沙| 西藏| 叶城县| 修文县| 浦北县| 平潭县| 大关县| 滁州市| 鄯善县| 金华市| 香格里拉县| 西城区| 武平县| 辰溪县| 仁布县| 高邮市| 新建县| 琼中| 桦川县| 金寨县| 云和县| 明溪县|