我已经与几家服务器提供商交谈过,他们现在试图估算 Web 开发项目的成本可行性,但并没有真正得到明确的答案。
该项目的主要负担是数据库,它将保存 2000 万行数据,每行 5 列(10 个字母代码、10 个字母代码、10 个字母代码、10 位整数、URL(平均说 20 个字符长)。
主要问题是如何估计此类所需的 GB 存储空间?(使用 SQL Server )。[我没有要测试的 SQL Server 副本]。
第二个问题实际上是关于速度和 I/O 要求的,但这可能是开发演示后的问题。
我已经与几家服务器提供商交谈过,他们现在试图估算 Web 开发项目的成本可行性,但并没有真正得到明确的答案。
该项目的主要负担是数据库,它将保存 2000 万行数据,每行 5 列(10 个字母代码、10 个字母代码、10 个字母代码、10 位整数、URL(平均说 20 个字符长)。
主要问题是如何估计此类所需的 GB 存储空间?(使用 SQL Server )。[我没有要测试的 SQL Server 副本]。
第二个问题实际上是关于速度和 I/O 要求的,但这可能是开发演示后的问题。
关于这个主题有一个完整的 MSDN 章节:估计数据库的大小。重要的是要知道您需要多少个非聚集索引(您是否要在这些“代码”列中的任何一个中查找数据?)以及聚集索引键是什么。每个主题在 MSDN 上都有一个主题:
此外,您可以部署行压缩或页面压缩以减小表的大小。如果您选择 Unicode 列,您还可以启用Unicode 压缩。
您的性能要求将主要由您的负载(即您的查询)驱动。您没有指定如何查询数据库(范围?聚合,单例查找?,BI?)以及如何更新数据库(只读?,ETL?,OLTP?)。关于如何监控和调整性能有一些技巧,但更重要的是设计您的应用程序以提高性能。有很多细节,例如。阅读数据访问代码如何影响数据库性能,但在很大程度上,最重要的任务是调整您的数据模型(表和索引的布局)以适应您的访问模式(您将如何查询数据库)。
假设您的 10 个字母代码和 20 个字母的 url 存储为 nchar 并且您的 10 位整数存储为 int,看起来根据此表,您正在查看每行 124 个字节:每个 nchar(10) 20 个,每行 4 个int,每个 nchar(20) 40。这意味着,在 2000 万行中,您的空间刚刚超过 2.3 GB。