【发布时间】:2021-05-17 19:16:59
【问题描述】:
我有以下架构 - 假设有 2 个国家,A 和 B。 国家 A 有 1000 个团队,而国家 B 有 100,000,000 - 如果我想根据团队所在的国家/地区快速查询结果,我将如何构建我的索引?
如果有帮助,团队不能更改国家/地区。
【问题讨论】:
-
我认为在索引视图中加入这些表是您所需要的。
-
首先构建您的查询。然后担心性能。我们只能假设您已经完成了功课并深思熟虑地选择了聚集索引以及添加的索引来支持您的外键。 1 亿个数字看起来更像是一个巨魔而不是现实 - 但严重扭曲的数据通常需要不同的方法来制作有效的查询。
-
请添加您要优化的具体查询。像这样的情况可以极大地受益于过滤/部分索引,但如果不查看特定查询就很难回答。
-
一个想法 - 尝试两个单独的查询。首先在 A 国搜索一个团队,这必须是一个简单的查询。优化第二个查询,因为您已经知道它在 B 国
-
我不知道这是什么意思:“如果我想根据团队所在的国家/地区快速查询结果”。这是否意味着您有两个查询 - 本质上 - 一个返回 A 中的所有团队,另一个返回 B 中的所有团队?
标签: sql sql-server indexing