SQL SERVER 分區表的總結–一些疑問的總結

來源:互聯網
上載者:User

在使用的分區表中,遇到一些問題,也想到一些問題。就一起總結起來。

1. 像主表--從表,這種結構才應用同樣的分區架構和分區函數,如訂單主表--訂單詳細表。

    這樣可以儲存對齊,於IO和聯結查詢效能都有提升。

    但是如果兩張不相關的表,最好不要用同樣分區架構和分區函數。因為在對其中一張表做分區結構調整時,會同樣作用到另一張表。

2. 每個分區對應一個不同的檔案組,共置於不同的物理磁碟。這是官方的最佳實務。

    但是,我在實踐中發現這樣管理起來很不方便。比如,訂單表,保留最近12個月的資料,分成12分區。訂單存檔表,因為量太大,可能會按三年前一個分區,

    最近三年每年一個分區,共四個分區。這樣當把訂單表的“過時”分區切到訂單存檔表時,由於不在同一個檔案組,就需要一個零時中間表,最後也是做跨檔案組傳輸資料,

    用不上Partition Switch的快速切換。要是資料量大的話,也會慢,或藉助其它辦法。

    個人認為,對於這兩個大表,何不如劃一個專用檔案組,多建幾個資料檔案共置於不同的物理磁碟上。因為檔案組中的資料檔案是按比率填充的,這樣也能實現IO均衡。

     查詢時,更能受益於磁碟並行操作。而且同一個檔案組中的做分區切換時,就能應用上Partition Switch的快速切換。

3. 對於分區表的查詢,應該使用分區列做為主要檢索條件。單表查詢時,就能定位到特定分區。聯結查詢時,關聯列也要是分區列,如果是儲存對齊就能應用分區消除來進一步提升效能。

4. 還有一些大表,是用自增ID做主鍵索引的。如產品表。對於這種表,與其它表關聯最多就是ID。如果一定對它分區,我個人認為分區列是選ID列。

    可是選了ID列分區,與其它表關聯時,只是實現在查詢時快速定位到產品表的某個分區,減少了掃描的量,提升了IO.

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.