我们为每个公司、国家和产品提供不同的度量:
A公司,澳大利亚,啤酒,10,22,3,9
常见的用例是计算特定国家啤酒的度量值1之和。
我有两个选择:
方案A:
维度表:
ID
Company
Country
Product
测量表:
Dimension.ID (FK)
DateTime
Measure1
Measure2
Measure3
Measure4
或方案B:
一张桌子:
ID
Company
Country
Product
DateTime
Measure1
Measure2
Measure3
Measure4
维度表中有10000条唯一记录,度量表中有近30000000条记录。
目前我们对产品、公司和国家使用字母数字键。
我的问题是:
哪个表现更好?
对于索引列有什么建议吗?
最佳答案
如果假设“dimension”表中一行的平均大小为50字节(只是猜测),而“measure table”中的平均大小也是50字节,那么在选项a中,数据库的大小将不小于1.5 GB,而在选项b中,数据库的大小将不小于3 GB。这是一个显著的区别。
所以我认为选项a更好,因为数据库的大小更小。
索引取决于要使用的查询。但我认为在使用option a时,不需要索引(除了主键和外键创建的索引),因为“dimension”表很小。
关于sql-server - 性能星型架构(BI),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18025736/