SQL Server 2000 表

use*_*766 1 database sql-server sql-server-2005 large-data

我们目前有一个 SQL Server 2000 数据库,其中一个表包含多个用户的数据。数据由 memberid 键控,它是一个整数字段。该表在 memberid 上有一个聚集索引。

该表现在大约有 2 亿行。索引和维护正在成为问题。我们正在讨论将表拆分为每个用户模型的一张表。

这意味着我们最终会得到非常多的表,可能高达 2,147,483,647,仅考虑正值。

我的问题:

  1. 有没有人有过安装数百万表的 SQL Server (2000/2005) 的经验?

  2. 这种架构对于使用查询分析器、企业管理器等进行维护和访问有什么影响?

  3. 在数据库实例中拥有如此大量的索引有什么含义。

感谢所有评论。

谢谢

编辑:我不同意将这个问题迁移到 Serverfault。这是一个与编程相关的问题。

小智 5

这里有一些想法:

1)不要那样做。严重地。数以百万计的表将是一场噩梦,并且可能会导致比它解决的问题更多的问题。

2)如果你真的想把表分成多个表,你不需要使用那么多。根据您的硬件,我预计 5000 万行没有问题,因此您可以将数据分成 4 个表。

3) 如果可能的话,我会做的是升级到 SQL Server 2005 或 2008 并使用表分区。这将允许您在表中细分数据。不是一个完美的解决方案,但比数百万个表要好得多。

为了回答您的具体问题,我想说 SQL Server 不太可能在一个实例中处理这么多表,如果每个记录可以有一个表,那么查询分析器等就毫无用处了。

快速添加:来自 Microsoft 站点:

数据库对象包括所有表、视图、存储过程、扩展存储过程、触发器、规则、默认值和约束。一个数据库中所有这些对象的总数不能超过 2,147,483,647。

http://msdn.microsoft.com/en-us/library/aa933149(SQL.80).aspx

令人惊讶的是,这个数字正是您指定的那个……嗯……