在SQL Server表中,是否存在行数的硬性限制?我认为唯一的限制是基于物理存储。
对于具有和不具有索引的表,什么时候性能会显着下降(如果有)?对于非常大的表,是否有任何常见做法?
为了提供一些领域知识,我们考虑使用审核表来记录数据库中所有表格字段的更改,并想知道可能会遇到哪些问题。
对于具有和不具有索引的表,什么时候性能会显着下降(如果有)?对于非常大的表,是否有任何常见做法?
为了提供一些领域知识,我们考虑使用审核表来记录数据库中所有表格字段的更改,并想知道可能会遇到哪些问题。
您说得没错,行数受可用存储空间的限制。
很难给出具体数字,因为这在很大程度上取决于您的服务器硬件、配置和查询效率。
例如,随着行数增加,简单的select语句将运行更快,显示较少的降级,而全文或近似搜索将会运行更慢。
除了上述的一切建议之外,我认为需要就索引/性能方面提供更多的背景信息。
如上所述,由于索引的质量和数量不同,因此无法给出性能数字。此外,它还取决于您想要优化什么操作。您需要优化插入吗?还是更关心查询响应速度?
如果您真正关心插入速度,则分区以及非常谨慎的索引考虑将是关键。
Tom H的单独表建议也是一个好主意。
使用审计表的另一种方法是每月(或每周,具体取决于您放入多少数据)归档一次数据。这样,如果您需要使用最新数据重新创建一些最近的更改,则可以针对较小的表执行操作,从而更快地完成操作(我发现从审计表中恢复几乎总是紧急任务!)。但是,如果您需要回溯更远的时间,仍然可以使用可用的数据。