当RangeShardMappings标记为离线时,只需要更清楚地了解引擎盖下发生的事情。
我理解映射需要设置为脱机以更新和删除分片和映射。
我想保留映射但是在任何特定时间使用特定映射阻止Azure Map Manager,我希望简单地将它们标记为脱机将允许我这样做,但它似乎对搜索结果没有影响。
根据MS Docs(https://docs.microsoft.com/en-us/azure/sql-database/sql-database-elastic-scale-shard-map-management)
仅在映射时才允许对分片映射执行某些操作 处于“脱机”状态,包括UpdateMapping和DeleteMapping。 当映射脱机时,基于密钥的数据相关请求 包含在该映射中将返回错误。另外,当一个 范围首先脱机,所有连接到受影响的分片 被自动杀死以防止不一致或 针对范围被更改的查询的结果不完整。
然而,这不是我遇到的行为。离线地图仍然返回结果集。这些映射是否存储在缓存中?
答案 0 :(得分:1)
离线标记映射的主要目的是阻止使用OpenConnectionForKey
进行连接。映射仍然是可见的,毕竟如果映射是不可见的,那么你将无法在以后将其标记回在线。
啊,现在我理解你的问题了。分片地图管理器不了解或控制数据库中的基础数据。这意味着分片映射可以确保您的查询离线地图仍在返回结果集。
where
子句包含与您请求的映射匹配的过滤器。您还可以使用row-level security确保查询仅返回正确的结果集。