iT邦幫忙

0

SQL Server 的磁碟(RAID 1)可以做重組嗎?重組時會造成SQL Server LOCK嗎?

匿名 2009-07-03 11:46:3813291 瀏覽
  • 分享至 

  • xImage

前提:
資料庫約30GB,用windows內建磁碟重組程式查看,磁碟破碎的挺嚴重。
SQL語法調校已經在進行,想針對磁碟系統提問。

請問:
1.SQL Server 的磁碟(兩顆RAID 1)可以做重組嗎?重組時會造成SQL Server LOCK嗎?
2.重組完效能會提高嗎?
3.若沒做磁碟重組,但REBUILD INDEX效能一樣提升嗎?
4.另,若磁碟是RAID 5呢?重組有意義嗎?
5.可建議用哪一套磁碟重組程式嗎?線上重組不影像資料庫。不敢用windows內建的...

謝謝指導

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
24
alexc
iT邦高手 1 級 ‧ 2009-07-03 12:08:48
最佳解答
  1. 可以,如果 mdf/ldf 被 SQL Server 鎖住,重組程式會知道不能去動那些檔案
  2. 如果 mdf/ldf 有被重組在連續的區域,效能會提高
  3. REBUILD INDEX 是資料庫的層次,跟重組檔案的層次不同,但是兩者皆可提升存取的效能,前提是查詢資料時,會用到 Index,REBUILD INDEX 才會提升存取效能
  4. 各家用的技術不盡相同,但應該都會透過 windows 提供的 api 去呼叫,因此同回答 1 所說:mdf/ldf 被 SQL Server 鎖住,重組程式就不會去動那些檔案,要等到 mdf/ldf 沒被 SQL Server 鎖住,重組程式才會搬移那些檔案。

所以應該用假日或半夜最少人使用的時候做重整效果才會比較好

14
why0412
iT邦新手 3 級 ‧ 2009-07-05 11:32:49

可以的,不管使用那一種 RAID 模式,對O/S來說都是一個單顆的硬碟,所以還是需要做磁碟重組。但是磁碟重組在企業裡不能隨便做,做磁碟重組前要先到Event Log裡看看有無異常的狀況,並檢查硬碟是否健康,若系統或硬碟有問題,做了碟磁重組後可能會發生資料不見或有壞軌被覆蓋等狀況。
亮晶晶的小欣

10
old7ada
iT邦研究生 2 級 ‧ 2009-07-06 11:17:29

你的最終目的應該是想提升SQL的效能吧?
首先建議OS 跟資料庫要放在不同的實體硬碟;mdf 跟 ldf 也要分開放在不同的實體硬碟才會達到你要的目的。
實體硬碟建議:?
1. OS + ldf (RAID 1) ?
為了省錢,可把OS 跟ldf放一起,前提是此Server只有SQL,沒有其他的應用程是要跑,這樣OS 才不會跟SQL搶資源。而ldf 放RAID 1 是因為RAID 1 會比 RAID 5 稍快。ldf 是data在還沒真正寫入資料庫(MDF)之前的儲存所在,所以速度要快。況且LDF 的DATA再寫入MDF之後就完成它的任務了,可清除裡面的DATA並時常做壓縮,硬碟空間的需求比MDF稍小。
如果OS幾乎沒有改變,LDF也經常壓縮且保養,該RAID 1 可以不必做重組效能也很不錯。

2. MDF (RAID 5)?
MDF 是主要儲存DATA 的地方,硬碟空間的需求大,容錯要高。原則上RAID 5 不太需要重組,因為它本身的DATA 儲存方式就是分散在不同的三顆實體硬碟(或三顆以上)。市面上的重組軟體都是來重組單顆硬碟的,以提升單顆硬碟的存取效能。RAID 5 的效能靠的是RAID 晶片跟RAID卡上的記憶體。

3. 建議再搭配一顆 hot spare 來cover RAID 1 and RAID 5。?

再來是邏輯的部分?
index 跟 SQL quary 的語法要配合,例如select的東西沒有適當的index來配合,或是用到不合適的index,那一切都是枉然。
固定每天、周或每月(視貴單位的資料量)做DATA & Transaction log 備份與維護,可用MS SQL本身的維護計畫就很好用了。其中包含Index rebuild, shrink db and log, backup db and log, 等等族繁不及備載,請詳閱 SQL books online.

最後針對你的問題
1.SQL Server 的磁碟(兩顆RAID 1)可以做重組嗎?
詳前文
重組時會造成SQL Server LOCK嗎?
不會,因為SQL LOCK 不是OS 的責任。這個問題應該是,SQL LOCK 時會影響重組嗎?答案是會。 跟據前文的說明,其實不必重組效能就很OK了。
2.重組完效能會提高嗎?
如果你的DATA 是放在一顆硬碟的話當然會,但是幅度不大。因為只用一顆(或RAID 1 放OS + ldf + mdf)主要的效能瓶頸會是在SQL的語法是否有配合適當的index。
3.若沒做磁碟重組,但REBUILD INDEX效能一樣提升嗎?
做REBUILD INDEX 的用意是存放index 的實體page太過鬆散或破裂(原文split),需要靠REBUILD INDEX 來恢復完整使之達到該有的效能。
4.另,若磁碟是RAID 5呢?重組有意義嗎?
詳前文
5.可建議用哪一套磁碟重組程式嗎?線上重組不影像資料庫。不敢用windows內建的..? 不用重組,若是一顆才需要重組。可用PerfectDisk、IObit或上網谷歌一下。

我要發表回答

立即登入回答