999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

SQL SERVER數據庫性能優化探討

2013-10-21 01:34:19劉冬周彬
卷宗 2013年6期
關鍵詞:數據庫效率優化

劉冬 周彬

摘 要:本文從SQL SERVER 數據庫的范式優化、查詢優化、索引優化等方面出發,對數據庫的性能優化方法進行探討,總結了數據庫優化應遵循的方法,力圖提高SQL語句的執行效率。

數據庫技術的應用已由傳統數據處理發展至圖像處理、商業決策管理等更多的新興領域,而這些新興領域對信息系統的高效、安全、穩定的性能要求更高。如何有效組織及處理數據庫中的海量數據, 保證系統吞吐量, 成為數據庫優化的首要任務。本文針對數據庫優化技術探索合適的方法,從范式優化、查詢優化、索引優化等多個方面進行探討,希望可以通過這些優化使信息系統更適用于人們的需求。

1 合理使用范式

關系模式規范化的目的是為了消除存儲異常、減少數據冗余,解決數據插入異常、刪除異常,保證數據完整性(即正確性和一致性)和存儲效率。但是把數據庫分解得越多,就會造成查詢時的時間浪費。通常認為當一個關系模式可以達到3NF(第三范式)或BCNF時,就具有了合理的結構及良好的性能。當關系規范化達到BCNF時, 雖然可以消除數據冗余太異常, 但卻可能會破壞了數據語義。所以,我們在設計時要先盡可能設計為BCNF,如果這時BCNF不到保持函數依賴的要求,破壞了數據語義,就應該則降低為3NF。在這里,3NF是指所有的非主屬性都完全依賴主屬性且不傳遞于主屬性。一般情況下當數據庫符合3NF后,通常就能很好的達到關系模式規范化的目的,它可以從根本上消除了數據冗余和數據不一致的問題。當然,使用了第三范式設計數據庫后,還需要對表或者相關數據的結構及性能進行全面調整和優化。

2 采用視圖方式

在一些數據量較大的表中,可能只有小部分數據會被訪問,而且是被頻繁的訪問。這時,我們就可以采用視圖方式,把這部分數據建立為視圖。有時,又會有一些數據需要針對不同角色有不同權限的開放,那么這些數據也可以做成視圖,并給視圖賦予不同的權限,這就可以從一定程度上保證了數據的安全性。

3 建立存儲過程

SQL Server 中存儲過程是SQL 語句和流程控制語句的集合。工作中,當某些操作需要使用大量重復的計算時,我們就可以合理使用存儲過程儲存這些操作,完成軟件復用,實現高性能的數據操作。同時,我們在使用存儲過程后,還能能過隔離和加密的方法提高數據庫的安全性。

4 使用索引優化數據庫

應用數據庫中會存儲海量的數據表,人們對其做查詢操作時,若進行全表掃描,會占用相當長的時間。索引與字典的目錄類似,是數據庫中重要的數據結構,它可以通過關鍵值指向表中的數據行。通過合理地創建并使用索引,可以避免上述全表掃描,提高數據查詢的效率,可以減少由于連接造成的資源浪費,優化數據庫性能。我們可以在表或視圖的一列或是多列上建索引,也可以在兩列或多列上建立復合索引。但是,索引在數據庫中會占用存儲空間,會犧牲系統性能,會在時間和空間方面帶來負面影響,因為表越大,索引也就越大。當一個含有索引的表中數據行被更新時,索引也同樣需要更新,需要及時反映數據的變化。在含有索引的表中進行插入、更新和刪除的操作時,速度可能會被影響。所以,在創建索引時必須考慮實際數據庫的查詢需求,以實現基于索引的數據庫優化。

在建立索引時,應該找到平衡點,注意以下問題:

(1)如果處理的關系表比較小, 就不需要建立索引。因為直接遍歷整個表用的時間并不多, 建立索引反而加重了系統負擔。

(2)若表里的數據常會頻繁更新, 那么維護索引也將非常頻繁, 如果這些工作量超出了索引帶給我們的查詢優勢, 則還不如不使用索引。

(3)索引分為聚集索引和非聚集索引。聚集索引的物理存儲按照索引排序。非聚集索引的物理存儲不按照索引排序。聚集索引在插入數據的時候,所花費在“物理存儲的排序” 時間上較長,但查詢數據的速度會比查詢非聚集數據的速度快。在建立時應考慮:

(4)不在 where 子句中進行表達式運算操作(如加減乘除)及函數操作。因為上述操作會使查詢放棄使用索引。

(5)創建及使用觸發器和存儲過程時,開始處進行“SET NOCOUNT ON” 的設置,結束時進行“SET NOCOUNT OFF” 設置,以減少服務器向客戶機發送信息造成的空間上和時間上的浪費。

(6)盡量分解大事務為小事務,提高系統的并發能力。

(7)小范圍內進行查詢時,子查詢會比連接查詢效率高。子查詢是指在WHERE或HAVING子句中又包含了一個SELECT語句。

例如,SELECT * FROM 課程表 WHERE 報名人數>(SELECT AVG(報名人數) FROM 課程表)

語句在執行時由內到外逐層執行,小范圍內效率較高。但如果大范圍內使用了嵌套,且查詢嵌套層次越多, 效率越低, 子查詢會比連接查詢效率低。

(8)如果IN能用BETWEEN代替就用BETWEEN。因為BETWEEN會使用索引,但IN不會用索引。

(9)FROM子句中選擇合適的表序

SQL語句FROM子句中的表名有時會是多張表, SQL Server在對表名進行解析時,會按照自右至左的順序處理,也就是寫在最后的表將被最先處理。所以,若FROM子句中包含多表則應該選擇記錄行最少的表要寫在FROM子句的最后。

6 結論

優化數據庫可以明顯提高計算機系統效率,具有非常深遠的意義。在數據庫設計階段對邏輯結構進行合理化優化,可獲得系統的較小開銷,從根本上提高系統的整體性能。

猜你喜歡
數據庫效率優化
超限高層建筑結構設計與優化思考
房地產導刊(2022年5期)2022-06-01 06:20:14
民用建筑防煙排煙設計優化探討
關于優化消防安全告知承諾的一些思考
一道優化題的幾何解法
提升朗讀教學效率的幾點思考
甘肅教育(2020年14期)2020-09-11 07:57:42
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
跟蹤導練(一)2
主站蜘蛛池模板: 成人夜夜嗨| 日本三级欧美三级| 中国国产A一级毛片| av在线手机播放| 在线观看热码亚洲av每日更新| 亚洲国产精品VA在线看黑人| 精品人妻无码中字系列| 国产美女自慰在线观看| 国产精品99r8在线观看| 日韩小视频在线播放| 2020亚洲精品无码| 刘亦菲一区二区在线观看| 91色在线观看| 精品国产电影久久九九| 在线看AV天堂| 亚洲成人动漫在线观看 | 国产女人18水真多毛片18精品 | 色男人的天堂久久综合| 福利片91| 欧美色视频在线| 亚洲成人在线免费观看| 欧美综合中文字幕久久| 精品欧美一区二区三区久久久| 人人91人人澡人人妻人人爽| 国产日韩av在线播放| 婷婷亚洲最大| 国产在线视频二区| 99热这里只有免费国产精品| 5555国产在线观看| 老司机午夜精品网站在线观看| 欧美性天天| 久久久久青草线综合超碰| 99久久免费精品特色大片| 国产美女无遮挡免费视频网站| 免费看一级毛片波多结衣| 成人国产三级在线播放| 国产成人h在线观看网站站| 91啪在线| 最新亚洲人成无码网站欣赏网| 亚洲精品无码AⅤ片青青在线观看| 97视频免费看| 国产精品观看视频免费完整版| 真人免费一级毛片一区二区| 国产91高清视频| 91青青草视频在线观看的| 国产1区2区在线观看| 91亚瑟视频| 国产女人水多毛片18| jizz国产在线| 成人精品午夜福利在线播放| 99人妻碰碰碰久久久久禁片| 中文一级毛片| 露脸国产精品自产在线播| 99久久精彩视频| 亚洲综合专区| 色综合中文字幕| 国产精品一区二区在线播放| 这里只有精品在线| 91色国产在线| 欧美国产中文| 青青操视频在线| 波多野结衣一区二区三区88| 九九热免费在线视频| 成年人福利视频| 久久综合伊人 六十路| 国产精品久久久久久久久久久久| 日韩在线第三页| 成人中文字幕在线| 制服丝袜 91视频| 欧美亚洲国产精品久久蜜芽| 美女毛片在线| 国外欧美一区另类中文字幕| 国产精品综合久久久| 最新亚洲人成无码网站欣赏网| 理论片一区| 亚洲人成在线精品| 高清色本在线www| 久久免费视频6| 亚洲精品第1页| 欧美成人午夜视频| 99在线视频免费| 免费va国产在线观看|