我正在将一个点与一组多边形相交。查询已编入索引,多边形不重叠,但查询计划似乎认为我将返回 18k 行而不是 1 行,这会导致查询计划错误。
特别是查询计划的最右边节点似乎认为 STPointFromText 函数将返回 1000 的基数,并且该点集与几何索引的交集返回 54k 行的 30%。(在表格中运行了 100 万个点,但没有找到实际返回超过 1 行的反例)
这个缩写查询的结果并不可怕,但是当我将它的输出连接到其他任何东西时,高基数估计迫使上游表成为 tablescan+hashmap,即使整个查询返回 1 行。这个扩展查询每秒运行几次,所以我想知道如何优化它。
空间索引是 HHHH,对于大约 80x50 米的最高分辨率(在域的大约 4000 公里最长边上),索引中有 56k 个多边形,预计最小尺寸约为 100 米。
请注意 est 行和实际行之间的差异。
估计的查询计划。
我有两个表:
联系人(ID,类型);
地址(ID)。
是否可以定义从地址(ID,'A')到联系人(ID,类型)的外键?