7

我正在使用每天加载数据的 SQL Server Standard 版本的数据库 -SQLBulkInsert随着表的增长和索引 I/O 的启动,性能正在减慢(即使禁用/重建,它也会变慢)

因此,向我建议的另一种方法是创建一个引用每个每日表格(或例如最后 30 个)的视图。应该只是一个案例SELECT * FROM x UNION ALL SELECT * FROM y...

可以包含的表数量或视图定义的长度是否有限制?
AND
数据库中的表数量是否有限制?

或者 - 有没有更好的方法来做到这一点(不花任何钱,否则我会迁移到 SQL Server Enterprise 并使用分区表!)

4

2 回答 2

14

SQL Server 没有表限制。相反,它有一个对象限制(其中表是一种对象)。因此,实际上,所有对象(索引、视图、表、过程等)的总和不能超过 20 亿(2,147,483,647 是迂腐的)。

您可以在单个查询中拥有的连接(或联合)数量没有硬性限制。限制将与硬件相关。

于 2017-10-07T14:38:06.167 回答
1

好吧,对于限制,您可以查看SQL Server 的最大容量规范

作为另一种选择,我会考虑使用分区表和分区索引

这里要注意的重要事项之一是

分区表和索引的数据被划分为单元,这些单元可以分布在数据库中的多个文件组中。数据被水平分区,以便将多组行映射到单独的分区中

这基本上表明您可以将分区分布在各种逻辑文件组中。这应该为您提供相当大的性能改进。

于 2013-08-19T05:42:15.977 回答