【问题标题】:What Are Realistic Limits on SQL Server Table Size? [closed]SQL Server 表大小的实际限制是什么? [关闭]
【发布时间】:2014-12-23 00:47:56
【问题描述】:

我们的网站有一些统计表记录了哪些用户/页面浏览量/等等。

它们是简单的表(几个 id 数字和一个日期时间),但有很多行(例如 194,000,000),并且打印的数据越来越大(6GB +)。

大多数活动是写入数据(即记录统计信息)并通过索引 id 字段执行 count(*) 操作。

This question 有一些关于 sqlserver 2008 限制的信息。但它以 TB 和最大行数为单位提到数据“受可用存储限制”。这是否意味着只要我们有足够的磁盘空间就没有问题?

我担心这些庞大的表可能会随着它们的增长而导致查询速度变慢/服务器负载增加。

我的问题

  1. 实际上,一个表在引起问题之前可以增长到多大? 真的仅受可用存储空间的限制吗?考虑到我提到的表类型,是否有任何合理的限制(以 GB / 行为单位)?

  2. 鉴于我们只执行 write 和 count(*) 查询,什么类型的 一张大桌子会导致问题吗?

  3. 我猜 count(*) 查询将变得更加资源 表越大越密集。那是对的吗?和什么 程度?

  4. 例如,一个表是 500GB,有 300 亿行。可以 除了对表本身的查询速度较慢之外,这会导致 sql server 出现任何其他问题吗?

【问题讨论】:

  • 我认为你链接到的问题涵盖的相当彻底。
  • 并非如此。例如,它给出了最大容量,但这可能与“相对有效的可用容量”不同。我不知道。此外,接受的答案还建议每月根据每天 100,000 个新行进行表拆分。那是每 3,000,000 行。考虑到问题中描述的设置,我想知道如果我不这样做,它会如何影响性能。

标签: sql-server sql-server-2008


【解决方案1】:

表格的设计方式以及您可以在表格上运行的查询类型有很大差异,以至于您很难找到任何有价值的指导。我的建议是加载一个表,其中包含您期望在非生产数据库中“活”的数据量,并尝试您计划在生产表中执行的查询类型。如果他们运作良好,你就准备好了。如果他们不这样做,您会看到他们为什么不这样做,也许可以使用不同的方法(即不同的索引、分区等)来解决它。

【讨论】:

  • 我很欣赏表和查询的设计,这就是我在问题开头详细说明这些的原因。
猜你喜欢
  • 1970-01-01
  • 2013-12-20
  • 1970-01-01
  • 1970-01-01
  • 2015-11-25
  • 1970-01-01
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
相关资源
最近更新 更多