注冊|登錄

聯(lián)系電話:024-31891684  13390130939
沈陽軟件公司--沈陽軟件定制

沈陽軟件開發(fā)_沈陽軟件公司_沈陽軟件定制/軟件/最新技術(shù)

Latest technology最新技術(shù)

數(shù)據(jù)庫性能優(yōu)化

瀏覽量:4493

從SQL SERVER 2005開始,數(shù)據(jù)庫不默認(rèn)生成NDF數(shù)據(jù)文件,一般情況下有一個主數(shù)據(jù)文件(MDF)就夠了,但是有些大型的數(shù)據(jù)庫,由于信息很多,而且查詢頻繁,所以為了提高查詢速度,可以把一些表或者一些表中的部分記錄分開存儲在不同的數(shù)據(jù)文件里
由于CPU和內(nèi)存的速度遠(yuǎn)大于硬盤的讀寫速度,所以可以把不同的數(shù)據(jù)文件放在不同的物理硬盤里,這樣執(zhí)行查詢的時候,就可以讓多個硬盤同時進(jìn)行查詢,以充分利用CPU和內(nèi)存的性能,提高查詢速度。 在這里詳細(xì)介紹一下其寫入的原理,數(shù)據(jù)文件(MDF、NDF)和日志文件(LDF)的寫入方式是不一樣的:

  數(shù)據(jù)文件:SQL Server按照同一個文件組里面的所有文件現(xiàn)有空閑空間的大小,按這個比例把新的數(shù)據(jù)分布到所有有空間的數(shù)據(jù)文件里,如果有三個數(shù)據(jù)文件A.MDFB.NDF,C.NDF,空閑大小分別為200mb,100mb,和50mb,那么寫入一個70mb的東西,他就會向ABC三個文件中一次寫入40、20、10的數(shù)據(jù),如果某個日志文件已滿,就不會向其寫入

  日志文件:日志文件是按照順序?qū)懭氲?,一個寫滿,才會寫入另外一個

  由上可見,如果能增加其數(shù)據(jù)文件NDF,有利于大數(shù)據(jù)量的查詢速度,但是增加日志文件卻沒什么用處。

  在SQL Server 2005中,默認(rèn)MDF文件初始大小為5MB,自增為1MB,不限增長,LDF初始為1MB,增長為10%,限制文件增長到一定的數(shù)目,一般設(shè)計中,使用SQL自帶的設(shè)計即可,但是大型數(shù)據(jù)庫設(shè)計中,最好親自去設(shè)計其增長和初始大小,如果初始值太小,那么很快數(shù)據(jù)庫就會寫滿,如果寫滿,在進(jìn)行插入會是什么情況呢?當(dāng)數(shù)據(jù)文件寫滿,進(jìn)行某些操作時,SQL Server會讓操作等待,直到文件自動增長結(jié)束了,原先的那個操作才能繼續(xù)進(jìn)行。如果自增長用了很長時間,原先的操作會等不及就超時取消了(一般默認(rèn)的閾值是15秒),不但這個操作會回滾,文件自動增長也會被取消。也就是說,這一次文件沒有得到任何增大,增長的時間根據(jù)自動增長的大小確定的,如果太小,可能一次操作需要連續(xù)幾次增長才能滿足,如果太大,就需要等待很長時間,所以設(shè)置自動增長要注意一下幾點:

  1)要設(shè)置成按固定大小增長,而不能按比例。這樣就能避免一次增長太多或者太少所帶來的不必要的麻煩。建議對比較小的數(shù)據(jù)庫,設(shè)置一次增長50 MB100 MB。對大的數(shù)據(jù)庫,設(shè)置一次增長100 MB200 MB。

  2)要定期監(jiān)測各個數(shù)據(jù)文件的使用情況,盡量保證每個文件剩余的空間一樣大,或者是期望的比例。

  3)設(shè)置文件最大值,以免SQL Server文件自增長用盡磁盤空間,影響操作系統(tǒng)。

  4)發(fā)生自增長后,要及時檢查新的數(shù)據(jù)文件空間分配情況。避免SQL Server總是往個別文件寫數(shù)據(jù)。

  因此,對于一個比較繁忙的數(shù)據(jù)庫,推薦的設(shè)置是開啟數(shù)據(jù)庫自動增長選項,以防數(shù)據(jù)庫空間用盡導(dǎo)致應(yīng)用程序失敗,但是要嚴(yán)格避免自動增長的發(fā)生。同時,盡量不要使用自動收縮功能。

  數(shù)據(jù)文件和日志文件的操作會產(chǎn)生大量的I/O。在可能的條件下,日志文件應(yīng)該存放在一個與數(shù)據(jù)和索引所在的數(shù)據(jù)文件不同的硬盤上以分散I/O,同時還有利于數(shù)據(jù)庫的災(zāi)難恢復(fù)。

為什么要表分區(qū)?

   當(dāng)一個表的數(shù)據(jù)量太大的時候,我們最想做的一件事是什么?將這個表一分為二或者更多分,但是表還是這個表,只是將其內(nèi)容存儲分開,這樣讀取就快了N倍了

  原理:表數(shù)據(jù)是無法放在文件中的,但是文件組可以放在文件中,表可以放在文件組中,這樣就間接實現(xiàn)了表數(shù)據(jù)存放在不同的文件中。能分區(qū)存儲的還有:表、索引和大型對象數(shù)據(jù) 。

  SQL SERVER 2005中,引入了表分區(qū)的概念, 當(dāng)表中的數(shù)據(jù)量不斷增大,查詢數(shù)據(jù)的速度就會變慢,應(yīng)用程序的性能就會下降,這時就應(yīng)該考慮對表進(jìn)行分區(qū),當(dāng)一個表里的數(shù)據(jù)很多時,可以將其分拆到多個的表里,因為要掃描的數(shù)據(jù)變得更少 ,查詢可以更快地運行,這樣操作大大提高了性能,表進(jìn)行分區(qū)后,邏輯上表仍然是一張完整的表,只是將表中的數(shù)據(jù)在物理上存放到多個表空間(物理文件上),這樣查詢數(shù)據(jù)時,不至于每次都掃描整張表

沈陽團(tuán)購網(wǎng)|營口網(wǎng)站制作|沈陽軟件公司|軟件定制|網(wǎng)站建設(shè)|加盟易勢|提交問題

主站蜘蛛池模板: 又黄又爽视频好爽视频| 在线你懂的网站| 久久精品国产精品| 欧美综合在线视频| 全部免费毛片免费播放| 色综合天天综合网国产成人| 国产日韩欧美综合在线| 91久久精品国产91久久性色也| 好吊妞视频免费视频| 中文字幕人妻偷伦在线视频| 日韩A无V码在线播放| 亚洲h在线观看| 欧美日韩在线视频一区| 人人妻人人澡人人爽人人dvd| 精品无码人妻一区二区三区品| 国产亚洲av片在线观看播放| 91亚洲精品自在在线观看| 国产精品亲子乱子伦xxxx裸| 97在线视频免费公开观看| 男女一对一免费视频| 国产真实女人一级毛片| 97久久精品午夜一区二区| 好吊妞国产欧美日韩免费观看| 中文字幕无码乱码人妻系列蜜桃| 日韩小视频在线观看| 亚洲av永久无码精品三区在线4| 欧美日韩精品久久久免费观看| 人人妻人人澡人人爽人人精品| 真实调教奇优影院在线观看| 午夜欧美日韩在线视频播放| 色台湾色综合网站| 国产免费啪嗒啪嗒视频看看| 黄页网站在线观看免费| 国产极品视觉盛宴| 亚洲五月六月丁香激情| 国产精品无码久久综合| 99久久精品免费看国产一区二区三区| 日本免费精品一区二区三区| 久久精品夜夜夜夜夜久久| 欧洲一级毛片免费| 亚洲人成77777在线播放网站不卡|