程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 工作經驗總結:SQL Server 2005的IS和AS

工作經驗總結:SQL Server 2005的IS和AS

編輯:關於SqlServer

最近做一個數據質量分析和主題分析的項目,裡面用到了SQL Server 2005的IS和AS部分,在這個過程中經歷了很多慘痛的教訓,多少吸取了一些經驗,雖然更多的都是”低級失誤”,不過還是希望能記下來,以後避免發生類似的問題:

1.磁盤空間

在團隊中我想來建議把系統盤分配成30G大小,即使你是win2003+vs2005+sqlserver2007+office2007,這些東西裝完後其實也就15G左右,似乎夠用,但經驗上來看,C盤會隨著你的使用逐漸變小,剛開始我分配20G的時候到後來C盤就剩幾兆,尴尬的很.

不過如果是再做類似的項目的話,我倒建議把C盤分得更大些.做IS的時候很多要用到快速加載,這個過程需要臨時表來參與,如果空間不夠的話,你導2000萬的數據,前1999萬都沒問題,很有可能到最後1萬的時候空間不足而導致失敗.

當然這裡也可以把數據引擎實例安裝或者配置到其它盤,這個完全可以根據自己所遇到的數據量酌情配置.

這一點,是當你處理大量數據的時候不得不考慮的問題,這個先期要是考慮不到的話,就會像我們一樣任務中途不得不花費不必要的時間來重新安裝或者部署什麼.

2.合理的結構

在處理多維數據集的時候經常遇到處理的步驟停滯在那在那個分區的處理上,不往下走.我所遇到這個問題的時候,等了兩個小時,後來被迫終止任務,重新檢查多維數據集結構,發現結構設計的很有問題,明明只用到了其中的一個維度而把一個事實表同時也做成了維表,這樣的聚合簡直就是個災難.後來把這個多維數據集重新做完以後,五分鐘的時間多維數據集就處理完了.

當然這裡需要提一下的就是,在團隊成員做好相應的多維數據集之後,最好是能自己再審查一下.這不是因為對團隊成員不信任,而是因為你終究要對過程和質量負責,另外團隊成員的技術水平參差不齊,所以這是注定要做的一個工作------我之前就遇到過一次,一個實習生為了得到一個實施表和維度表的結構,套了五六重視圖.

如果問題是在運行的過程中才發現的話,那麼排除問題可能會花費你更多的時間.

3.版本問題.

這裡所提及的是SQLServer的版本.在社區裡比較常見的是開發版和企業版.從做業務系統的角度來說,這個版本似乎不會有太大的影響,但是在處理大規模數據的時候,據團隊成員反應其性能表現還是不一樣的,其中一個兄弟的反應是開發版在處理完數據後所消耗的內存會一直駐留著,除非你重新啟動服務,而企業版做事就很干淨,處理完數據後你會發現企業版把戰場打掃得干干淨淨.當然這個問題沒有得到官方的驗證,只是也偶爾聽微軟的朋友提及過,但是為了不至於耽誤任務進度,如果你有企業版的話,建議還是使用企業版.

4.數據的備份.

微軟的系統以前死掉是藍屏,現在藍屏少了,取而代之的是不響應你的任何操作.經過這次的慘痛教訓,我十分不建議所有的工作都在一台機器上做.在我們的任務過程當中,ETL,多維數據集處理以及各種程序都跑在一台機器上,當初沒有備份的一個主要原因是因為數據量太大而且過程也比較復雜,但是後來遇到的問題真是有驚無險:這台機器在運行一段時間之後突然死掉了,沒有任何反映,當時是正在處理數據,沒辦法熱啟下機器,啟動後進入登陸界面,輸入完密碼後就是什麼也都不提示.有經驗的兄弟說這是sqlserver在做表修復,沒辦法大家就得等,結果,一個小時就這麼過去了------要知道我們可是在晚上加班啊.

要是這個時候能有另外一台機器馬上頂上的話,那麼就不至於耽誤這麼多的時間.另外,數據備份出來,如果有能拆接的任務可以分別部署到兩個機器上去跑,從而提高性能(悲哀的是,我們這次任務重每一步都是串行的).

5.網絡

很多情況下可能你所處的網絡環境當中,網絡管理員對網絡的管理不是很好,以至於網絡內到處都是攻擊,這往往是很常見的.還記得當年在某一大學的內部網裡,但凡是win2003的系統,只要你不裝SP1,接上網線後就馬上中招,准准的.這個在任何場景下可能都很難避免,而且公司人數越多危險性往往就越大,而更多時候問題往往不是出在你所負責的團隊,而是來自於其它團隊或者項目組的”肉機”所發出的攻擊.你總不想在兩台機器協同處理數據的時候網絡突然癱瘓掉吧(我遇到過,任何的兩台機器都無法互相訪問).

這個問題可能說起來有點天方夜譚,但事情往往就是這麼邪門. 所以,安全起見,除了要注意平時的安全外,建議把自己團隊的機器部署到一個路由器下面,要是發現問題馬上拔路由器上的網線,不要因為公司網絡的問題突然影響到你的任務的進展.

其它:

與AS打交道的團隊成員,無論是做挖掘模型還是做多維數據集,都反應過機器很容易就死掉的這個問題,而這個毛病確實也是屢試不爽.這個時候,除了前面建議的改進挖掘結構或多維數據集結構外,機器的配置要求也是很高的.我們的開發用機器是P4 3.0+2GB這樣的機器,所以要處理AS服務的話,如果實在沒有服務器,還是建議申請配置比較高的機器.

類似這樣的項目,數據的一次處理周期會很長,每個最小粒度的處理單位很有可能都要一個小時,所以任何一個地方出了問題,就可能白白的浪費掉了一個小時,當然這還不算把問題解決掉的時間,而當你發現這個問題是由於系統原因造成的時候而不得不讓你重裝什麼東西的時候,所需要的時間更是無法估算的.

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved