【发布时间】:2015-05-23 05:39:25
【问题描述】:
我有一堆这样的查询:
-- get all data that exists in source but not yet in destination
SELECT
*
INTO #temp
FROM source T010T
WHERE NOT EXISTS
(
SELECT TOP 1 1 FROM destination P510T
WHERE WH_CD = T010T.WH_CD
AND POS_NO = T010T.POS_NO
AND SLIP_NO = T010T.TRAN_NO
AND OPE_DATE = T010T.SL_REC_DATE
)
-- process the data
....
-- insert data into destination
Insert into destination select * From #temp
我想知道这种方法会影响性能吗?因为我没有要测试的真实数据,而且这是在本地运行的,所以我有点害怕当投入到现实中时,这些查询将是 a@@ 中的痛苦!
有没有更好的选择?
p/s : 比较中使用的两个表的列都是主键primarykey(wh_cd,pos_no,slip_no,ope_date) ...
【问题讨论】:
-
将前 11 名替换为 *
-
@GiorgiNakeuri 用
1代替*怎么样?顺便说一句,如果使用*,它应该类似于:where wh_Cd+pos_no+.. not in ( select wh_Cd+pos_no+.. from source) -
否 * 与 1 或 6 或 'blabla' 相同。如果表中有 ro,则不需要 top 到现在。这可能会影响性能。
标签: performance sql-server-2012 projection