这个问题是涉及到另一个问题:
Will having multiple filegroups help speed up my database?在MS SQL Server中管理大量表的最佳方式是什么?
我们正在开发的软件是使用MS SQL Server 2005的存储关系数据分析工具。初始分析可能很慢(因为我们正在处理数百万或数十亿行数据),但是对于快速回忆以前的分析有性能要求,所以我们“保存”每个分析的结果。
我们目前的做法是保存分析结果在一系列的“运行特定的”表和分析是复杂的,以至于我们可能最终每分析多达100桌。通常这些表每次分析使用几百MB(与我们的数百GB或有时多TB的源数据相比,这些表很小)。但总的来说,磁盘空间对我们来说不是问题。每组表格都专门用于一个分析,在许多情况下,这就为我们回溯源数据提供了巨大的性能改进。
一旦我们积累了足够的已保存分析结果 - 在我们添加更强大的归档/清理功能之前,我们的测试数据库爬到了几个表中,该方法开始崩溃。但即使在生产中,拥有超过10万张桌子也不算什么。微软在系统对象的规模(〜20亿)方面提出了相当大的理论限制,但是一旦我们的数据库增长超过10万,那么像CREATE TABLE和DROP TABLE这样的简单查询就会显着减慢。
我们有一些空间来辩论我们的方法,但我认为这可能很难做到没有更多的上下文,所以我想更普遍地提出这个问题:如果我们被迫创建这么多的表,什么是最好的方法来管理它们?多个文件组?多个模式/所有者?多个数据库?
另注:我不是激动不已的“简单的问题抛硬件”(即添加RAM,CPU电源,硬盘速度)的想法。但是我们也不会排除它,特别是如果(例如)有人可以明确地告诉我们添加RAM或使用多个文件组将对管理大型系统目录有什么影响。
WOW。对于许多表,Management Studio在加载列表时会做什么?这一定是痛苦的。 – 2008-09-23 23:38:19