我目前正在使用MS SQL Server 2008,但我不确定它是否是针对此特定任务的最佳系统。
我有一个这样的表:
PK_ptA PK_ptB DateInserted LookupColA LookupColB ... LookupColF DataCol (ntext)
常见的查询是
SELECT TOP(1000000) DataCol FROM table
WHERE LookupColA=x AND LookupColD=y AND LookupColE=z
ORDER BY DateInserted DESC
该表有大约10亿行,每天插入500万行。
我对SQL Server的主要问题是分片或展开数据文件并不容易。此外,出口似乎最大速度为每秒1000次(约1MB / s),这似乎非常缓慢。
我遇到的另一个问题是,对于SQL Server,如果我想添加一个新的LookupCol,日志文件会大量增加,需要大量很少使用的可用空间。
对于这个问题,有没有明显更好的解决方案?
答案 0 :(得分:3)
您遇到了问题,而且不是SQL Server。让我也忽略你似乎有一个糟糕的桌面设计。
你应该:
这里的问题绝对不是SQL Server,它与糟糕的表设计有关 - 可能 - 不充分 - 使用不当的硬件。
答案 1 :(得分:0)
好的,表设计(单独回答)。 Lokup是低音查找表。
...所以
值 作为vields
ValueTable
PK
ValueLookupMap表
所以,基本上,如果你添加一个查找“字段”,那么你只需在LookupTable中创建一组条目,然后在ValueLookupMap中添加条目。