2012-07-22 51 views
0

我曾經與幾個服務器提供商談過,他們現在試圖估算Web開發項目的成本可行性,但並沒有真正得到明確的答案。如何估計SQL Server數據庫的服務器大小要求?

該項目的主要負擔是數據庫,它將容納2000萬行數據,每行5列(10個字母代碼,10個字母代碼,10個字母代碼,10位整數,URL(例如20個字符長平均)。

的主要問題是如何估計GB必要的存儲的類似的東西?(與SQL Server)。我沒有SQL Server的複製測試。

的第二個問題實際上是關於速度和I/O需求,但這可能是在演示開發之後的一個問題。

回答

1

假設你的10個字母代碼和20個字母的URL存儲爲nchar,你的10位整數存儲爲int,它看起來像你看每行124個字節的每個this表:每個nchar(10)20個,每個4個int,每個nchar 40(20)。這意味着,在2000萬行,你只是超過2.3 GB。

+0

我會通過承認我不是SQL專家(我剛剛在數據類型上搜索表,查找像nchar/nvarchar之類的文本類型之間的差異,然後做了一些數學),所以有可能我錯過了一些東西。 – Tyson 2012-07-22 23:34:29

+0

感謝您的支持,您是否知道用戶負載以及基於每個用戶的數據庫查詢數量來估計服務器性能需求的方法? (在RAM /插座等方面?) – user1166981 2012-07-22 23:35:17

+0

不,不確定缺少做一些原型。 – Tyson 2012-07-22 23:37:50

4

有關於此主題的完整MSDN章節:Estimating the Size of a Database。知道你需要多少個非聚集索引(你是否想要在這些'代碼'列中查找數據?')以及什麼是聚簇索引鍵是非常重要的。每個主題都有,再次,一個話題在MSDN:

此外,您可以部署Row CompressionPage Compression來減少你的表(S)的大小。如果你選擇Unicode columsn,你也可以啓用Unicode Compression

您的性能要求將主要由您的負載(即您的查詢)驅動。您沒有指定如何查詢數據庫(範圍?聚合,單例查找?,BI?)以及數據庫如何更新(只讀?,ETL ?, OLTP?)。有關於如何Monitor and Tune for Performance tipc,但更重要的是設計你的應用程序的性能。有很多細節,例如。閱讀How Data Access Code Affects Database Performance,但是,大部分情況下,最重要的任務是將您的數據模型(表和索引的佈局)調整爲您的訪問模式(您將如何查詢數據庫)。

+0

嗨Remus,謝謝你非常有幫助的回答,我會認真閱讀。我還沒有充分了解數據庫,但它似乎!我提到的第二個擔心是查詢的負載,同時可能會有數千個查詢發生。我打算使用這個網格:http://demos.telerik.com/aspnet-ajax/grid/examples/programming/filteringtemplatecolumns/defaultcs.aspx這是我的理解,過濾使用分頁方法的查詢。 – user1166981 2012-07-23 12:00:35

+0

每個演示300,000行的基準:http://demos.telerik.com/aspnet-ajax/grid/examples/performance/linq/defaultcs.aspx稍微超過一秒鐘搜索一列中的數據。如果知道服務器的規格,您是否知道是否可以根據這些統計數據估計在某些同時進行的搜索時可以獲得的響應時間有多大? – user1166981 2012-07-23 12:06:08