注冊(cè)|登錄

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

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

Latest technology最新技術(shù)

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

瀏覽量:4492

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

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

  日志文件:日志文件是按照順序?qū)懭氲模粋€(gè)寫滿,才會(huì)寫入另外一個(gè)

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

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

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

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

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

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

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

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

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

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

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

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

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

主站蜘蛛池模板: 精品三级久久久久电影网1| 你懂的视频在线| 无翼乌邪恶帝日本全彩网站 | 好男人官网在线播放| 亚洲欧洲日本国产| 精品亚洲麻豆1区2区3区| 国产乱码免费卡1卡二卡3卡四| a级毛片视频免费观看| 手机看片国产福利| 亚洲欧美日韩中文字幕网址| 精品久久一区二区| 国产v精品欧美精品v日韩| 91精品欧美一区二区三区| 日本高清电影免费播放| 亚洲视频免费观看| 精品日韩欧美国产一区二区| 国产精品亚洲综合一区在线观看| 丰满熟女高潮毛茸茸欧洲| 欧美日韩黄色大片| 国产一卡二卡≡卡四卡无人| 92国产精品午夜福利| 日日橹狠狠爱欧美超碰| 五月婷婷伊人网| 欧美国产一区二区三区激情无套| 四虎成人永久影院| 18禁裸男晨勃露j毛免费观看 | 亚洲精品第1页| 韩国理论福利片午夜| 在线麻豆国产传媒60在线观看| 三上悠亚在线电影| 最近更新的2019免费国语电影| 亚洲日韩中文字幕在线播放| 精品欧美一区二区在线观看| 国产中文字幕在线视频| 麻豆人妻少妇精品无码专区 | 久久国产热视频| 爽好大快深点一视频| 国产交换丝雨巅峰| 97超碰精品成人国产| 无码av大香线蕉伊人久久| 久久婷婷五月综合色欧美|