首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Server多久才能以这种速度达到容量?

Server多久才能以这种速度达到容量?
EN

Stack Overflow用户
提问于 2016-03-04 16:32:34
回答 4查看 68关注 0票数 0

我要从MS Access移动到SQL Server,耶!我知道Server的容量超过500千兆字节,但我的老板也告诉我,Server最终将无法处理我插入到表中的速率。

我有一个有64列的表,每天增加大约20,000行(128万个单元格)。大多数(~70%)数据类型是平均16个字符长的字符串。其余的数据类型是短数字或布尔数。我在追踪金融数据,这就是为什么有这么多。假设这些数据需要被追踪到永久的,如果不是至少3-5年的话。

因此,以这种速度,Server是否能够处理我的数据?我需要做一些特殊的配置才能让它正常工作,还是这个数量太小了?我觉得这已经足够了,但我只是想在前进之前确定一下。

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2016-03-04 16:41:03

它与sql server的关系不大,更多地与它正在运行的盒子有关。硬盘有多大?里面有多少记忆?它上坐着什么样的CPU ?即使是宽的varchar(),每天20000也不算多。但是,如果没有良好的索引、分区和内存、磁盘空间和CPU来处理针对它的查询,您的问题更可能是执行查询的速度慢。

无论如何,假设您使用的是VARCHAR()而不是NVARCHAR(),那么单个字符就是一个字节。您说它们平均为16,但这是存储在VARCHAR()中的字符串的长度还是VARCHAR()的最大大小?这会带来不同的结果。

假设这是一个字段的平均字符串长度,那么您可以执行64x16来理解记录的字节大小(由于需要元数据而不是超级super精确,但足够接近)。这将是每个记录的1024字节或1kb

5年后,那将是20000*365*5,即36,500,000kb,也就是36.5gb。没什么大不了的。在那里添加索引和元数据等等,也许您将为这个表推动50gb

不过,我的猜测是,您的平均字符串长度小于16,而且字段只是定义为VARCHAR(16)VARCHAR()只存储与字符串长度相同的字节(加上2来定义长度),因此它可能小于此估计值。如果表是用所有CHAR(16)定义的,那么存储将始终是16个字节。

另外,如果您正在存储unicode并使用NVARCHAR(),那么所有的计算都会加倍,因为Server使用的是UTF8,即每个字符有2个字节。

票数 5
EN

Stack Overflow用户

发布于 2016-03-04 16:42:13

Very粗略的,信封后面的计算:

  • 每个字段16个字节
  • 每记录64个字段
  • 每天20 000次记录

您将每天向表中添加20 to。每年7GB。

这不是大量的数据。在Server上运行多on数据库的人很多.

更重要的是将数据加载到表中的过程、索引(以便有效地查询数据)、服务器配置(I/O、内存、CPU)以及如何管理这些数据。最后,您可能需要Enterprise来使用额外的内存、表分区等。

对您的问题的简短回答是:是的,只要您设计得当,Server就能很好地处理这个问题。

票数 1
EN

Stack Overflow用户

发布于 2016-03-04 16:42:14

如果我只数数数据:

代码语言:javascript
复制
20.000 rows * (70% * 16 bytes + 30% * 4 bytes) * 64 columns = 15.872.000 bytes.

您每天要插入16 MB。这将持续很长一段时间,直到它变得无法管理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35801213

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档