ask*_*otl 3 sql-server sql-server-2014
我有一个这样的查询:
select key, name from localtab where key not in (select key from remotetab);
Run Code Online (Sandbox Code Playgroud)
查询需要永远,我不明白为什么。
localtab是本地表,remotetab是另一台服务器中的远程表。key是int在两个表中都有唯一索引的列。当我分别查询两个表时,只需几秒钟。
链接服务器的性能很差。将您需要的数据获取到本地服务器并在那里完成大部分艰苦的工作和处理,而不是在单个查询中混合使用本地和远程。
select remotetab 到临时表
select [key] into #remote_made_local from remotetab
在执行 where 子句过滤时使用 #temp 表并使用exists而不是in为了更好的性能
select a.[key], a.name from localtab a where not exists (select 1 from #remote_made_local b where b.[key] = a.[key] )
VS做
select [key], name from localtab where key not in (select [key] from #remote_made_local)
| 归档时间: |
|
| 查看次数: |
44 次 |
| 最近记录: |