【发布时间】:2013-12-14 04:17:41
【问题描述】:
我有一个名为 MetricTbl 的表,其字段为 User_Id、Entity、Metric、ModifiedDate、Value。值、UserId 是整数。 Entity 和 Metric 是 nvarchar。表有大约 3000 万行。
我想优化查询 - 从 MetricTbl 中选择 SUM(Value),其中 UserId = 1 且 Entity = 'Room' 和 Metric = 'Temperature'
我必须为这种查询设计一个策略。我正在使用天蓝色联邦。这是一个联合表。 我已经在 User_Id、Entity、Metric、ModifiedDate 上创建了唯一索引。因为它是天蓝色的联邦所以我不能有索引视图。 请提出一些策略。 如果需要,我可以创建新表。 谢谢 马尼什
【问题讨论】:
-
你到底想要什么????
-
哇 30*10^6 行 那么这有什么问题呢? 从 MetricTbl 中选择 SUM(Value),其中 UserId = 1 且 Entity = 'Room' 和 Metric = 'Temperature'
-
在用户 ID、实体、指标上添加索引,并将值作为包含的列
-
按照@AllanS.Hansen 的建议,尝试将
value列作为最后一个字段添加到您的索引中。(User_Id, Entity, Metric, ModifiedDate, Value)或(User_Id, Entity, Metric, ModifiedDate) INCLUDE (Value)。这意味着可以通过仅查看索引来回答查询,而无需执行从索引到表的有效连接(查找要求和的值)。然后,如果 Azure 允许,请调查聚集索引的工作方式以及它们在这种情况下是否合适。
标签: sql sql-server azure-sql-database federation