色综合网亚洲精品久久-精品国产国语对白久久免费-噼里啪啦国语电影大全-日本高清在线一区欧美-精品AV一区二区三区不卡-国产精品免费一区二区区-日本高清一区免费中文视频

【20年品牌建站】找北京網(wǎng)站建設(shè)公司就選新鴻儒/提供北京網(wǎng)站建設(shè)報(bào)價(jià)/北京網(wǎng)站制作/北京網(wǎng)站設(shè)計(jì)/網(wǎng)站開(kāi)發(fā)、北京網(wǎng)站建設(shè)公司電話(huà)【400-024-1998】有優(yōu)惠哦!
簡(jiǎn)體
繁體 簡(jiǎn)體
我們的服務(wù)遍布中國(guó)

我們的服務(wù)遍布中國(guó)
乃至世界

新鴻儒所服務(wù)的品牌地域與城市
北京 天津 上海 廣州 深圳 香港 廈門(mén) 江蘇 浙江 山東
重慶 長(zhǎng)沙 武漢 成都 西安 寧夏 麗江 青海 云南 烏魯木齊
黑龍江 內(nèi)蒙古 河北 ...
新鴻儒服務(wù)與合作的全球各地
美國(guó) 加拿大 德國(guó) 法國(guó) 英國(guó) 瑞士 意大利 荷蘭
印度 日本 韓國(guó) ...

不論你的品牌在何處
我們都可以提供完善的服務(wù)與幫助

致電

400-024-1998

高性能網(wǎng)站建設(shè)之 MS Sql Server數(shù)據(jù)庫(kù)分區(qū)

發(fā)布時(shí)間:2013-11-22 瀏覽:387打印字號(hào):

 

什么是數(shù)據(jù)庫(kù)分區(qū)?
數(shù)據(jù)庫(kù)分區(qū)是一種對(duì)表的橫向分割,Sql server 2005企業(yè)版和之后的Sql server版本才提供這種技術(shù),這種對(duì)表的橫向分割不同于2000中的表分割,它對(duì)訪問(wèn)用戶(hù)是透明的,用戶(hù)并不會(huì)感覺(jué)的表被橫向分割了。(2000中的表橫向分割是建n個(gè)表例如按時(shí)間建表每月一個(gè)表,表名不同,最后需要做一個(gè)大視圖)

關(guān)于具體的如何做分區(qū),請(qǐng)參考數(shù)據(jù)庫(kù)分區(qū)演練http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html

為什么要分區(qū)?
顯而易見(jiàn)分區(qū)是為了提高數(shù)據(jù)庫(kù)的讀寫(xiě)性能,提高數(shù)據(jù)庫(kù)的效率;

分區(qū)是否總是可以提高效率?
分區(qū)是一把雙刃劍,并不總能提高效率,這和具體情況有關(guān)系。
之所以有分區(qū)技術(shù),分區(qū)技術(shù)用的好的話(huà)可以提高性能,是因?yàn)橐环矫娣謪^(qū)把一大塊數(shù)據(jù)分成了n小塊,這樣查詢(xún)的時(shí)候很快定位到某一小塊上,在小塊中尋址要快很多;另一方面CPU比磁盤(pán)IO快很多倍,而硬件上又有多個(gè)磁盤(pán),或者是RAID(廉價(jià)磁盤(pán)冗余陣列),可以讓數(shù)據(jù)庫(kù)驅(qū)動(dòng)CPU同時(shí)去讀寫(xiě)不同的磁盤(pán),這樣才有可能可以提高效率。
分區(qū)在有些時(shí)候并不能提高讀寫(xiě)效率,比如說(shuō)我們經(jīng)常看到的按照日期字段去分區(qū)MSDN例子,這個(gè)實(shí)例中是按照記錄的生成時(shí)間來(lái)分區(qū)的,把一年的數(shù)據(jù)分割成12個(gè)分區(qū),每月一個(gè)。這樣的分區(qū)導(dǎo)致分區(qū)并不能實(shí)現(xiàn)CPU同步寫(xiě)并提高寫(xiě)入性能,因?yàn)樵谕粋€(gè)時(shí)段CPU總是要寫(xiě)入到最新的那一個(gè)分區(qū)對(duì)應(yīng)的磁盤(pán)中。另一個(gè)問(wèn)題是:這樣分區(qū)是否可以提高讀取性能呢?答案是不一定,要看根據(jù)什么字段來(lái)查詢(xún),如果是根據(jù)時(shí)間來(lái)查詢(xún),根據(jù)時(shí)間生成報(bào)表那么這種分區(qū)肯定會(huì)提高查詢(xún)的效率,但是如果是按照某個(gè)客戶(hù)查詢(xún)客戶(hù)最近1年內(nèi)的賬單數(shù)據(jù),這樣數(shù)據(jù)分布到不同的分區(qū)上,這樣的話(huà)效率就不一定能提高了,這要看數(shù)據(jù)在同一個(gè)分區(qū)上連續(xù)分布的讀性能高,還是CPU從幾個(gè)磁盤(pán)上同步讀取,然后在合并數(shù)據(jù)的性能更高一些,這和讀取數(shù)據(jù)的記錄數(shù)也有關(guān)系。

如何分區(qū)?用什么字段做分區(qū)依據(jù)?
具體如何分區(qū)和涉及的業(yè)務(wù)有關(guān)系,要看業(yè)務(wù)上最經(jīng)常的寫(xiě)入和讀取操作是什么,然后再考慮分區(qū)的策略。

既然與具體業(yè)務(wù)相關(guān),我們就假定一個(gè)業(yè)務(wù)環(huán)境,假如我們要做一個(gè)論壇,對(duì)論壇的帖子和回復(fù)表進(jìn)行分區(qū)。
論壇中最常見(jiàn)的寫(xiě)操作是1)發(fā)帖 2)回復(fù)帖子,
最常見(jiàn)的讀操作是
1) 根據(jù)帖子id顯示帖子詳情和分頁(yè)的帖子回復(fù)
2) 根據(jù)帖子版面帖子列表頁(yè)根據(jù)版面id分頁(yè)讀取帖子列表數(shù)據(jù)
怎么分區(qū)更合適呢?現(xiàn)在還沒(méi)有準(zhǔn)確答案,我有兩種可能的方案,寫(xiě)下來(lái),大家討論看看。
方案1. 根據(jù)帖子ID區(qū)域段分區(qū)(1-300w一個(gè)分區(qū)、300w-600w一個(gè)分區(qū)…),這樣理論上可以提高帖子詳細(xì)頁(yè)的讀取速度,而對(duì)于寫(xiě)操作性能沒(méi)有益處,對(duì)于根據(jù)版面id讀取帖子列表頁(yè)有可能有益
方案2. 根據(jù)版面id進(jìn)行分區(qū),這樣對(duì)于寫(xiě)性能應(yīng)該有提高,不同的分區(qū)對(duì)應(yīng)不同的版面,當(dāng)有兩個(gè)版面同時(shí)有發(fā)帖回帖操作時(shí),有可能可以并發(fā)寫(xiě)。對(duì)于根據(jù)版面id獲得帖子列表頁(yè)數(shù)據(jù)也可以提高性能,而對(duì)于帖子詳細(xì)信息頁(yè)沒(méi)有性能影響。

多大的數(shù)據(jù)量才需要分區(qū)?
這個(gè)問(wèn)題只能說(shuō)一個(gè)內(nèi)部標(biāo)準(zhǔn),如果一張表的記錄超過(guò)在超過(guò)1000w,并以每月百萬(wàn)的數(shù)據(jù)量增長(zhǎng),那就需要分區(qū)。

關(guān)于具體的如何做分區(qū),請(qǐng)參考數(shù)據(jù)庫(kù)分區(qū)演練http://www.cnblogs.com/yukaizhao/archive/2008/05/07/sql_partition_test.html

現(xiàn)在就與新鴻儒客服交流

400-024-1998

您也可進(jìn)行在線(xiàn)咨詢(xún)或預(yù)約項(xiàng)目顧問(wèn)
我要預(yù)約
在線(xiàn)咨詢(xún)