【发布时间】:2011-02-21 17:30:45
【问题描述】:
我有一个关于子查询性能/加入另一个表的小问题
INSERT
INTO Original.Person
(
PID, Name, Surname, SID
)
(
SELECT ma.PID_new , TBL.Name , ma.Surname, TBL.SID
FROM Copy.Person TBL , original.MATabelle MA
WHERE TBL.PID = p_PID_old
AND TBL.PID = MA.PID_old
);
这是我的 SQL,现在这个东西运行了大约 100 万次或更多。 我的问题是什么会更快?
- 如果我将
TBL.SID更改为 (Select new from helptable where old = tbl.sid)
或
- 如果我将“HelpTable”添加到
from并加入where?
编辑1
好吧,这个脚本只运行 r 人。
我的程序有 2 个模块,一个用于填充 MaTabelle,另一个用于传输数据。该程序确实将 2 个数据库合并在一起,因此有时会使用相同的密钥。
现在我正在研究一个不存在重复键的解决方案。
我的解决方案是制作一个“帮助表”。密钥的所有者 (SID) 生成一个新密钥并将其写入“HelpTable”。使用此键的所有其他表都可以从“HelpTable”中读取它。
edit2
突然想到了什么:
如果一个表作为一个可以为空的键(未链接的外键)
那么这不适用于 from or 吗?
【问题讨论】: