自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MS Sql Server數(shù)據(jù)庫分區(qū)

數(shù)據(jù)庫 SQL Server
Sql Server數(shù)據(jù)庫是一個關(guān)系數(shù)據(jù)庫管理系統(tǒng),是人們熱切關(guān)注的數(shù)據(jù)庫之一,本文將主要為大家介紹Sql Server數(shù)據(jù)庫分區(qū)問題。

對于Sql Server數(shù)據(jù)庫分區(qū)問題相信很多人還是對其不時很了解,具體Sql Server數(shù)據(jù)庫分區(qū)是怎么個情況?下文將為大家解答。

什么是數(shù)據(jù)庫分區(qū)?

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

為什么要分區(qū)?

  顯而易見分區(qū)是為了提高數(shù)據(jù)庫的讀寫性能,提高數(shù)據(jù)庫的效率;

分區(qū)是否總是可以提高效率?

  分區(qū)是一把雙刃劍,并不總能提高效率,這和具體情況有關(guān)系。

  之所以有分區(qū)技術(shù),分區(qū)技術(shù)用的好的話可以提高性能,是因為一方面分區(qū)把一大塊數(shù)據(jù)分成了n小塊,這樣查詢的時候很快定位到某一小塊上,在小塊中尋址要快很多;另一方面CPU比磁盤IO快很多倍,而硬件上又有多個磁盤,或者是RAID(廉價磁盤冗余陣列),可以讓數(shù)據(jù)庫驅(qū)動CPU同時去讀寫不同的磁盤,這樣才有可能可以提高效率。

  分區(qū)在有些時候并不能提高讀寫效率,比如說我們經(jīng)常看到的按照日期字段去分區(qū)MSDN例子,這個實例中是按照記錄的生成時間來分區(qū)的,把一年的數(shù)據(jù)分割成12個分區(qū),每月一個。這樣的分區(qū)導(dǎo)致分區(qū)并不能實現(xiàn)CPU同步寫并提高寫入性能,因為在同一個時段CPU總是要寫入到***的那一個分區(qū)對應(yīng)的磁盤中。另一個問題是:這樣分區(qū)是否可以提高讀取性能呢?答案是不一定,要看根據(jù)什么字段來查詢,如果是根據(jù)時間來查詢,根據(jù)時間生成報表那么這種分區(qū)肯定會提高查詢的效率,但是如果是按照某個客戶查詢客戶最近1年內(nèi)的賬單數(shù)據(jù),這樣數(shù)據(jù)分布到不同的分區(qū)上,這樣的話效率就不一定能提高了,這要看數(shù)據(jù)在同一個分區(qū)上連續(xù)分布的讀性能高,還是CPU從幾個磁盤上同步讀取,然后在合并數(shù)據(jù)的性能更高一些,這和讀取數(shù)據(jù)的記錄數(shù)也有關(guān)系。

如何分區(qū)?用什么字段做分區(qū)依據(jù)?

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

  既然與具體業(yè)務(wù)相關(guān),我們就假定一個業(yè)務(wù)環(huán)境,假如我們要做一個論壇,對論壇的帖子和回復(fù)表進行分區(qū)。

  論壇中最常見的寫操作是1)發(fā)帖 2)回復(fù)帖子, 最常見的讀操作是

  1) 根據(jù)帖子id顯示帖子詳情和分頁的帖子回復(fù)
  2) 根據(jù)帖子版面帖子列表頁根據(jù)版面id分頁讀取帖子列表數(shù)據(jù)

怎么分區(qū)更合適呢?

現(xiàn)在還沒有準確答案,我有兩種可能的方案,寫下來,大家討論看看。

  方案1. 根據(jù)帖子ID區(qū)域段分區(qū)(1-300w一個分區(qū)、300w-600w一個分區(qū)…),這樣理論上可以提高帖子詳細頁的讀取速度,而對于寫操作性能沒有益處,對于根據(jù)版面id讀取帖子列表頁有可能有益

  方案2. 根據(jù)版面id進行分區(qū),這樣對于寫性能應(yīng)該有提高,不同的分區(qū)對應(yīng)不同的版面,當有兩個版面同時有發(fā)帖回帖操作時,有可能可以并發(fā)寫。對于根據(jù)版面id獲得帖子列表頁數(shù)據(jù)也可以提高性能,而對于帖子詳細信息頁沒有性能影響。

多大的數(shù)據(jù)量才需要分區(qū)?

  這個問題我只能說一個內(nèi)部標準,如果一張表的記錄超過在超過1000w,并以每月百萬的數(shù)據(jù)量增長,那就需要分區(qū)。

上文從這幾個方面解析了Sql Server數(shù)據(jù)庫分區(qū)問題,現(xiàn)在對數(shù)據(jù)庫分區(qū)大家應(yīng)該都有一個大體的了解,這里介紹的只是Sql Server數(shù)據(jù)庫分區(qū)的基本知識,對剛剛?cè)腴T的初學(xué)者來說是很好的學(xué)習(xí)資料,希望能夠幫到大家。

【編輯推薦】

  1. 教你如何在SQL Server數(shù)據(jù)庫中加密數(shù)據(jù)
  2. 在SQL Server數(shù)據(jù)庫開發(fā)中的十大問題
  3. 保護SQL Server數(shù)據(jù)庫的十大絕招
責(zé)任編輯:迎迎 來源: 自學(xué)編程網(wǎng)
相關(guān)推薦

2010-06-30 10:37:55

MS-SQL Serv

2010-07-22 13:59:14

MS SQL Serv

2011-03-29 09:15:20

原始分區(qū)SQL Server數(shù)

2010-07-15 17:28:50

SQL Server

2011-07-20 16:03:06

SQL Server數(shù)分區(qū)表

2010-09-10 13:37:30

表分區(qū)SQL Server

2010-06-01 10:58:57

MySQL數(shù)據(jù)庫

2010-07-12 15:49:53

MS SQL Serv

2010-07-08 11:05:14

SQL Server數(shù)

2021-05-17 06:57:34

SQLServer數(shù)據(jù)庫

2011-07-14 12:56:45

SQL Server SWITCH操作符

2011-08-25 18:09:36

SQL Server創(chuàng)建數(shù)據(jù)倉庫已分區(qū)表

2011-04-01 17:05:44

SQL Server數(shù)日志

2009-03-19 09:44:07

SQL Server數(shù)據(jù)庫遷移數(shù)據(jù)庫

2010-06-30 11:16:50

SQL Server

2011-04-29 14:30:23

2011-07-21 15:07:59

SQL Server數(shù)自動化管理分區(qū)

2011-03-24 09:45:34

SQL Server數(shù)恢復(fù)

2011-03-24 09:07:11

SQL Server數(shù)備份

2011-03-24 09:24:08

SQL Server數(shù)還原
點贊
收藏

51CTO技術(shù)棧公眾號