单个大sql表还是多个小sql表?

时间:2011-03-21 17:25:43

标签: sql-server-2005 aggregate

我目前正在使用MS SQL 2005,并且有一个包含17列的表,并且每行中的数据所占用的空间仅比MS SQL中允许的空间(每行/记录)少一点可以肯定的是,由于存储在此表中的数据是从我无法控制的内容的Excel工作表中输入的,因此我无法将其分解为较小的表。

现在的重点是,对于使用此数据库的网站上的几乎所有内容,主表提供结果集,并且这些结果集以前是已知的。那么,哪两个更好: a)我每次都使用大桌子。 b)我创建较小的表,并在大表中编辑数据后立即填充/填充它们。

例如:包含产品详细信息的Excel表格(几乎每周)从各个制造商到达,并存储在PRODUCTS(大)表中。现在有一些查询:

SELECT DISTINCT Brand_name, Model_name FROM PRODUCTS

SELECT DISTINCT Brand_name, Model_name FROM PRODUCTS WHERE Price < 10和大约10-15这样的人。

现在我的问题是:我是否应该为这些东西构建已经聚合的表,这些表除了PRODUCTS表之外还有5个以上的表,并且只要表单进入就更新它们,或者我应该只在PRODUCTS上执行所有检索查询表

PRODUCTS表一次最多包含500,000行。

1 个答案:

答案 0 :(得分:4)

我会倾向于坚持你的单桌。 500k记录并不过分。如果你确定它正确使用你正在使用的常用选择索引,你可能会发现它很快。

尝试并运行一些受控和可重复的测试,以查看使用正确的索引可以获得哪种速度增益。