none
Data file 與 Filegroup RRS feed

  • 問題

  • 有個問題想請前輩解答

    1.多個data file 在不同實體HDD(不做RAID)
    2.單一data file,HDD做RAID5
    3.切data file,HDD做RAID5

    以上3種規劃哪種較佳?why?

    2009年10月19日 上午 05:30

解答

  • hi

    在同一組RAID內,RAID5就已經會自動分散寫入到各磁碟上了
    再切多個Data file 這樣效能會更好嗎?


    效能只會好不會差

    RAID (獨立磁碟備援陣列) 裝置,它將資料分割到多部磁碟機,結果因為同一時間有較多讀寫頭在讀取資料,而使得資料存取速度變快。分割到多部磁碟機的資料表,其掃描速度通常會比儲存在單一磁碟機上的同一個資料表快
    同時再切多個Data file
    使用多個檔案可減少儲存體爭用並明顯產生更好的延展性。(不過不要建立太多檔案,請依CPU個數建立)

    我自己測試的例子
    測試partition table你會發現差很多(你也可以自己測試看看)
    一個table
    切8個partition但在同一個filegroup(只有一份datafile(*.mdf))

    同樣切8個partition但存在4個不同filegroup(每個filegroup又切4分datafile)




    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 jeff.ko 2009年10月20日 上午 02:44
    2009年10月19日 下午 12:49
    版主

所有回覆

  • hi
    3.切data file,HDD做RAID5
    RAID5(硬體切割)
    同一時間有較多讀寫頭在讀取資料,而使得資料存取速度變快。分割到多部磁碟機的資料表,其掃描速度通常會比儲存在單一磁碟機上的同一個資料表快。此外,將資料表與相關的資料表儲存在不同磁碟機上,可以明顯提高查詢效能

    切data file and filegroups
    因為它可讓資料庫跨多個磁碟、多個磁碟控制卡或 RAID。存取資料時,個別讀寫頭可同時平行存取資料。這樣可加速資料庫作業

    參考
    http://msdn.microsoft.com/zh-tw/library/ms187087.aspx(使用檔案與檔案群組)
    http://msdn.microsoft.com/zh-tw/library/ms190619.aspx(資料庫效能)


    http://www.dotblogs.com.tw/ricochen/Default.aspx
    2009年10月19日 上午 07:00
    版主
  • hi

    在同一組RAID內,RAID5就已經會自動分散寫入到各磁碟上了
    再切多個Data file 這樣效能會更好嗎?

    2009年10月19日 上午 08:16
  • 有個問題想請前輩解答

    1.多個data file 在不同實體HDD(不做RAID)
    2.單一data file,HDD做RAID5
    3.切data file,HDD做RAID5

    以上3種規劃哪種較佳?why?

    在不考慮其他因素(例如:硬碟轉速或其他規格不同)的情況下,1. 會是最佳的規劃,原因在於 RAID 5 寫入資料時,需要多進行一道 parity 寫入的操作,1.  卻不需要。

    參考資料:
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    2009年10月19日 上午 08:33
    版主
  • 有個問題想請前輩解答

    1.多個data file 在不同實體HDD(不做RAID)
    2.單一data file,HDD做RAID5
    3.切data file,HDD做RAID5

    以上3種規劃哪種較佳?why?

    在不考慮其他因素(例如:硬碟轉速或其他規格不同)的情況下,1. 會是最佳的規劃,原因在於 RAID 5 寫入資料時,需要多進行一道 parity 寫入的操作,1.  卻不需要。

    參考資料:
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」


    但是從下面的說明看來,做RAID似乎較佳
    -------------------------------------------
    利用多重磁碟機

    您可能想要將資料分割對應到檔案群組,讓每個資料分割都存取不同的實體磁碟機,藉以提升 I/O 效能。SQL Server 在為 I/O 作業執行資料排序時,會先依資料分割排序資料。在這種狀況下,SQL Server 會一次存取一台磁碟機,而這樣會降低效能。效能方面比較好的改善方法便是設定 RAID,將資料分割的資料檔分割到多個磁碟上。利用這種方式,雖然 SQL Server 仍然會依資料分割排序資料,但它可以同時存取每個資料分割的所有磁碟機。不論所有資料分割是位在一個檔案群組還是多個檔案群組,都可以設計這種組態。如需有關 SQL Server 如何配合不同 RAID 層級運作的詳細資訊,請參閱<RAID 層級與 SQL Server>。


    http://msdn.microsoft.com/zh-tw/library/ms177411(SQL.90).aspx

    2009年10月19日 上午 08:45
  • hi

    在同一組RAID內,RAID5就已經會自動分散寫入到各磁碟上了
    再切多個Data file 這樣效能會更好嗎?


    效能只會好不會差

    RAID (獨立磁碟備援陣列) 裝置,它將資料分割到多部磁碟機,結果因為同一時間有較多讀寫頭在讀取資料,而使得資料存取速度變快。分割到多部磁碟機的資料表,其掃描速度通常會比儲存在單一磁碟機上的同一個資料表快
    同時再切多個Data file
    使用多個檔案可減少儲存體爭用並明顯產生更好的延展性。(不過不要建立太多檔案,請依CPU個數建立)

    我自己測試的例子
    測試partition table你會發現差很多(你也可以自己測試看看)
    一個table
    切8個partition但在同一個filegroup(只有一份datafile(*.mdf))

    同樣切8個partition但存在4個不同filegroup(每個filegroup又切4分datafile)




    http://www.dotblogs.com.tw/ricochen/Default.aspx
    • 已標示為解答 jeff.ko 2009年10月20日 上午 02:44
    2009年10月19日 下午 12:49
    版主
  • 但是從下面的說明看來,做RAID似乎較佳
    -------------------------------------------
    利用多重磁碟機

    您可能想要將資料分割對應到檔案群組,讓每個資料分割都存取不同的實體磁碟機,藉以提升 I/O 效能SQL Server 在為 I/O 作業執行資料排序時,會先依資料分割排序資料。在這種狀況下,SQL Server 會一次存取一台磁碟機,而這樣會降低效能。效能方面比較好的改善方法便是設定 RAID,將資料分割的資料檔分割到多個磁碟上。利用這種方式,雖然 SQL Server 仍然會依資料分割排序資料,但它可以同時存取每個資料分割的所有磁碟機。不論所有資料分割是位在一個檔案群組還是多個檔案群組,都可以設計這種組態。如需有關 SQL Server 如何配合不同 RAID 層級運作的詳細資訊,請參閱<RAID 層級與 SQL Server>。


    http://msdn.microsoft.com/zh-tw/library/ms177411(SQL.90).aspx

    若您於第一篇提問中的 1.多個data file 在不同實體HDD(不做RAID),這個就是您於上面所引用的說明提到的「要進行資料分割並對應到檔案群組」那 RAID 速度是會比不同實體 HDD 來的快。不過也不盡然是所有類型的 RAID 都會適合用來作為上面您引用的資料分割之用,原因請自行參考我先前回覆所提供的參考資料。
    ☞ 這裡是「免費的討論區」付費支援服務請造訪 此處享受尊榮服務
    如果回覆對您有幫助,請記得按下標示為解答」
    • 已編輯 Alex ChuoModerator 2009年11月19日 下午 02:38 修改錯字:回復->回覆
    2009年10月19日 下午 03:14
    版主