none
SQL Server Express 的效能是不是差到不行? RRS feed

  • 問題

  • 這一陣子,我在測試我用SQL Express 2005架的webserver.

    那台機器的設備原來是

    OS: SBS 2003

    P4 3.2G HT.

    RAM 1G

    HDD: 160G RAID0;

    資料庫大小約為250MB.

     

    這台server只有跑webserver和DNS server而已,

    結果我發現....我的網站一天加spider不到兩百人(最忙時也不過一小時spider來的時候, 大約為每小時100人次.)...但spider來的時候, 機器幾乎就像掛了一下, web 反應超慢..

    這時sqlservr.exe大概佔了 150MB的記億體.

     

    後來把RAM加到3G....結果我發現, 效能是變好了...不過...sqlservr竟然給我吃掉了1G的RAM, 也就是說..SQL Express記憶體的上限...這會不會太誇張了一點...250MB的DB竟然用掉了1G的RAM...

    這是出了什麼問題嗎?

     

    請問一下, SQL workgroup版的還有standard版本也是會有這個問題嗎? database效率有什麼差別嗎?

    (就SQL Express, SQL workgroup, SQL standard來比較.)

    就目前的資料看起來, SQL Express的RAM 上限是1G, workgroup是3G, standard是OS的上限...

    依SQL Express這種情形來說..會不會出現我250MB的DB即使我把我的RAM升成了8G...換了workgroup給我佔用了3G的RAM, 或是換成standard給我佔用了7-8G的RAM的情形出現呢?

    因為實在是太詭異了說...

     

    2007年6月9日 上午 11:55

解答

  • SQL Server 2005 Express 的訴求重點是給那些要學習如何建置、部署簡單的資料應用程式的人員使用,由此我們可以看出其用途基本上就不是用於網站。您提到當搜尋引擎的蜘蛛人進來之後,「機器幾乎就像掛了一下, web 反應超慢」,由於我們不知道蜘蛛人是怎麼去搜尋資料進行索引,再者資料庫的結構(Schema)、索引...等設定是否有經過最佳化的調整,這些都是會影響效能的因素。

    若說 SQL Server 2005 Workgroup 甚至是其他非 Express 版的效能如此之差,那想必業界自然不會使用 SQL Server 2005,但是我們所看到的事實卻是,證券業巿佔率排名第一的元大京華證券將 SQL Server 2005 用於大戶下單系統企業入口網站,這說明了 SQL Server 2005 的速度與穩定度獲得元大京華肯定。畢竟如何快速且有效地為客戶提供所需的商品與服務,是證券業的致勝關鍵所在。其他國內使用 SQL Server 2005 的成功案例請自行造訪:台灣客戶案例研究。國外成功案例請參考:Customer Success Stories
    2007年6月10日 上午 04:34
    版主
  •  

    SQL Server在效能低落的部份,其實我會比較建議您,先使用SQL Profiler去監視到底是哪一層面出了問題

     

    目前會直接影響效能低落的

     

    1.Table的索引鍵沒有設定正確,或沒有進行適當的設定。

    2.前端程式的撰寫不當造成,用SQL Profiler觀測每一隻進來查詢的程式到底耗用了多少資源,[我給我自己的標準,除非必要 CPU Time不要超過40。]可使用預存程序進行語法的改良。

     

    若您經過監測後發現這些用量都很低,那您可以合理懷疑是SQL Server本身的問題。但若監測出來結果是語法造成很高的Loading,則請您要檢查一下上面兩點是否都可以經的起考驗。Open Source很多在規劃時,是以能執行為主,後面才漸漸改良程式本身的效能。

     

    可是不代表與它介接的皆可以對應最佳化。所以您還是要費點工查閱問題出在哪邊。才能得到比較好的效能。

     

     

    2007年6月20日 上午 05:24
  • 除了使用 magicpopo 大大所建議的方式之外,還需有些因素會影響,比方說,資料庫是從舊版 SQL Server 升級而來,在此情況下,舊版資料庫本身的結構一定會與原生的 SQL Server 2005 資料庫所有不同,當然 SQL Server 2005 資料庫引擎還是可以正常處理舊版的資料庫,但是有些統計資料,如果沒有適時地更新,效能低落自然是可以預期的。
    2007年7月29日 上午 03:33
    版主
  • 我是不太懂SQL Server啦,不過依管理我們公司主機的經驗,感覺SQL Server似乎還真的蠻吃記憶體的,但是我們的資料庫高達4GB(主機記憶體有6GB),運作起來除了使用者無限制條件下搜尋資料庫時會把CPU使用率大幅拉高外,其他沒有什麼太大問題。另外,關於Spider的問題,某百X搜尋的Spider似乎還蠻暴力的,建議您可以考慮擋起來...

    2007年7月30日 下午 05:15
    版主

所有回覆

  • SQL Server 2005 Express 的訴求重點是給那些要學習如何建置、部署簡單的資料應用程式的人員使用,由此我們可以看出其用途基本上就不是用於網站。您提到當搜尋引擎的蜘蛛人進來之後,「機器幾乎就像掛了一下, web 反應超慢」,由於我們不知道蜘蛛人是怎麼去搜尋資料進行索引,再者資料庫的結構(Schema)、索引...等設定是否有經過最佳化的調整,這些都是會影響效能的因素。

    若說 SQL Server 2005 Workgroup 甚至是其他非 Express 版的效能如此之差,那想必業界自然不會使用 SQL Server 2005,但是我們所看到的事實卻是,證券業巿佔率排名第一的元大京華證券將 SQL Server 2005 用於大戶下單系統企業入口網站,這說明了 SQL Server 2005 的速度與穩定度獲得元大京華肯定。畢竟如何快速且有效地為客戶提供所需的商品與服務,是證券業的致勝關鍵所在。其他國內使用 SQL Server 2005 的成功案例請自行造訪:台灣客戶案例研究。國外成功案例請參考:Customer Success Stories
    2007年6月10日 上午 04:34
    版主
  • 小朱大的意思是說 SQL Server 2005在執行效率上有明顯的改善嗎?

    因為在微軟的SQL server 版本比較中, 只有提到幾個版本在CPU量和記憶體的限制這兩個部分看起來是比較和效能有關的. 並無法從比較列表中看出到底是否是在底層的效率就已經有差了. 就以微軟公布的這部分來說, 我會認為SQL express即使受到的限制比較多(1顆CPU和1G的RAM), 但也不至於會連一個日流量只有200人的網站也應付不了,我認為我用的電腦雖然不是非常好, 但是絕對不算爛就是了. 而且對外的頻寬還有10M, 在最忙, web幾乎全掛的時候, 我的CPU使用率也沒超過30%, 幾乎都在10%以下跑. SQL express的表現的確是有點出乎我的意料之外. 我以前也寫過一陣子的資料庫程式,Informix & SyBase的, 十多年前的技術了, 現在DB的效能應該只有更好沒有更差才對.就以前的經驗來說...這些資料對資料庫來說, 根本就是小意思才對.

     

    至於程式的部分, 因為我不是自己寫的, 是用Open source 的 Dotnetnuke, 他們在4.4.x版後, 據他們說效能已有大幅改善, Dotnetnuke在網路上至少也算小有名氣, 幾十萬人在使用, database的規劃我是認為不至於太糟才對.

     

    大公司使用的硬體自然就會比我們一般人使用的要好, 您舉的例子, 很難比較出他們用SQL Server效率好, 到底是因為機器好還是程式效率也比較好啊...

    因為基本上我猜啦. 就算拿SQL Express在他們的電腦上跑, 效能也不至於差到那去...我當然也是相信SQL Server效能很不錯的, 否則就不會去試SQL Express了. 只是試了以後讓我對SQL Server的效能開始感到執疑, 因為如果Express的效能極差, 我很難想像一般的版本能強到那去. 以SQL workgroup或是SQL standard來說, 我也的確不需要較高級版本的某些功能, 我要的功能, express就已經足夠了, 目前資料庫250MB, 而且70%以上是在存LOG 資料, 這些資料spider根本就讀不到. 目前的狀況我根本就無法知道, 花了錢買下去的升級版本是真的效能就能提升嗎,? 因為效能並沒有列在微軟的比較表中, 就拿試用版來說, 微軟只提供enterprise的版本....以express的例子來說...我很難確定enterprise版本跑得順. standard 或是 workgroup 就能跑得順. 這就是讓我困擾的地方, 因為我根本無法得知到底為什麼效能差. 

    因此我是比較想知道, 是否SQL Experss在我的電腦上跑起來如此不順, 是因為什麼可能的原因的. 是否能有什麼工具能夠協助最佳化的呢? 還是純粹只是因為RAM不夠而已?

    2007年6月10日 上午 09:24
  •  穿越時空的旅人 寫信:

    小朱大的意思是說 SQL Server 2005在執行效率上有明顯的改善嗎?

     

    看到鬼 ... 我在哪裡說話了 ?

    2007年6月10日 上午 09:37
    版主
  • Sorry...看post 看到眼花...

    應該是 Alex Chuo  大大才對..

    2007年6月10日 上午 10:10
  •  

    SQL Server在效能低落的部份,其實我會比較建議您,先使用SQL Profiler去監視到底是哪一層面出了問題

     

    目前會直接影響效能低落的

     

    1.Table的索引鍵沒有設定正確,或沒有進行適當的設定。

    2.前端程式的撰寫不當造成,用SQL Profiler觀測每一隻進來查詢的程式到底耗用了多少資源,[我給我自己的標準,除非必要 CPU Time不要超過40。]可使用預存程序進行語法的改良。

     

    若您經過監測後發現這些用量都很低,那您可以合理懷疑是SQL Server本身的問題。但若監測出來結果是語法造成很高的Loading,則請您要檢查一下上面兩點是否都可以經的起考驗。Open Source很多在規劃時,是以能執行為主,後面才漸漸改良程式本身的效能。

     

    可是不代表與它介接的皆可以對應最佳化。所以您還是要費點工查閱問題出在哪邊。才能得到比較好的效能。

     

     

    2007年6月20日 上午 05:24
  • 除了使用 magicpopo 大大所建議的方式之外,還需有些因素會影響,比方說,資料庫是從舊版 SQL Server 升級而來,在此情況下,舊版資料庫本身的結構一定會與原生的 SQL Server 2005 資料庫所有不同,當然 SQL Server 2005 資料庫引擎還是可以正常處理舊版的資料庫,但是有些統計資料,如果沒有適時地更新,效能低落自然是可以預期的。
    2007年7月29日 上午 03:33
    版主
  • 我是不太懂SQL Server啦,不過依管理我們公司主機的經驗,感覺SQL Server似乎還真的蠻吃記憶體的,但是我們的資料庫高達4GB(主機記憶體有6GB),運作起來除了使用者無限制條件下搜尋資料庫時會把CPU使用率大幅拉高外,其他沒有什麼太大問題。另外,關於Spider的問題,某百X搜尋的Spider似乎還蠻暴力的,建議您可以考慮擋起來...

    2007年7月30日 下午 05:15
    版主
  • 我之前把 SQL Express  更新成SP2, 記憶體的問題馬上就有大幅度的改善了...記億體從1.5G降到2-300MB, 最近升級成的workgroup的版本...正在觀查中...感謝大家的建議.. 我還在觀查看看有什麼問題...

    2007年7月31日 上午 02:15