【发布时间】:2014-12-23 00:47:56
【问题描述】:
我们的网站有一些统计表记录了哪些用户/页面浏览量/等等。
它们是简单的表(几个 id 数字和一个日期时间),但有很多行(例如 194,000,000),并且打印的数据越来越大(6GB +)。
大多数活动是写入数据(即记录统计信息)并通过索引 id 字段执行 count(*) 操作。
This question 有一些关于 sqlserver 2008 限制的信息。但它以 TB 和最大行数为单位提到数据“受可用存储限制”。这是否意味着只要我们有足够的磁盘空间就没有问题?
我担心这些庞大的表可能会随着它们的增长而导致查询速度变慢/服务器负载增加。
我的问题
实际上,一个表在引起问题之前可以增长到多大? 真的仅受可用存储空间的限制吗?考虑到我提到的表类型,是否有任何合理的限制(以 GB / 行为单位)?
鉴于我们只执行 write 和 count(*) 查询,什么类型的 一张大桌子会导致问题吗?
我猜 count(*) 查询将变得更加资源 表越大越密集。那是对的吗?和什么 程度?
例如,一个表是 500GB,有 300 亿行。可以 除了对表本身的查询速度较慢之外,这会导致 sql server 出现任何其他问题吗?
【问题讨论】:
-
我认为你链接到的问题涵盖的相当彻底。
-
并非如此。例如,它给出了最大容量,但这可能与“相对有效的可用容量”不同。我不知道。此外,接受的答案还建议每月根据每天 100,000 个新行进行表拆分。那是每 3,000,000 行。考虑到问题中描述的设置,我想知道如果我不这样做,它会如何影响性能。
标签: sql-server sql-server-2008