我们有这样的查询:
select X.id_x, A.id_a, B.id_b
from X
left join A on 'A|' + A.id_a = X.id_aOrB
left join B on 'B|' + B.id_b = X.id_aOrB
X 链接到 A 或 B 并且 id 在 join 语句中计算。
- X:8 000 行
- 答:36 000 行
- B:3 000 行
这个查询很慢,像 10 秒。上没有索引X.id_aOrb
。
然后使用 2 个由触发器更新的“连接”表,我们不需要连接'A|' + id
和'B|'+id
. 不到 1 秒即可获取结果。好的。
我的问题:为什么这个 concat 这么慢?当数据太多时,SQL Server 在“+”中效率不高吗?