sql查询性能-行数较少的宽表还是行数较多的窄表?
我想查询星型模式中的事实表 我需要捕获很多值,如总销售额、净销售额、区域销售额等,以组合其他两个值,即PK 我有两个选择:sql查询性能-行数较少的宽表还是行数较多的窄表?,sql,performance,Sql,Performance,我想查询星型模式中的事实表 我需要捕获很多值,如总销售额、净销售额、区域销售额等,以组合其他两个值,即PK 我有两个选择: 一行有主键,一批列有总销售额、区域销售额等指标。 将度量作为一个维度,这样PK会更大-在行中会添加列度量。除了PK,只有一个值。因此,我将一行和多个度量值分解为许多行和一个度量值 插入和选择对性能有什么好处?如果您有一行包含所有值,则会出现争用问题,假设您同时进行插入/更新和读取 拥有一个宽表也意味着将来添加新的度量值要困难得多——它需要更改表模式,这将锁定表并导致其他问题
插入和选择对性能有什么好处?如果您有一行包含所有值,则会出现争用问题,假设您同时进行插入/更新和读取 拥有一个宽表也意味着将来添加新的度量值要困难得多——它需要更改表模式,这将锁定表并导致其他问题
您的
SELECT
性能应该是相似的,除非您在同一个查询中为同一个PK提取多个值,在这种情况下,更宽的表可能会更快一些。您的最低粒度级别是什么?当你提到区域销售和总净销售时,我觉得你可能混淆了度量和维度。例如:区域可能是销售事实的一个维度。我不认为争用是一个问题,因为我假设John正在谈论创建DW。@Maess-根据设置,您在构建过程中仍然可能存在争用,但是的,您是对的,这听起来像仓库是的,我正在创建DW,我想找到最好的解决方案,以实现良好的性能和维护。我给你们举了一个坏例子。衡量标准可以是折扣、总销售额、净销售额、成本等,而不是地区销售额。