时间:2021-07-01 10:21:17 帮助过:20人阅读
2: FROM LocalTable
3: WHERE SomeColumn <
4: (SELECT COUNT(*)
5: FROM RemoteServer.SomeDB.dbo.SomeTable
6: WHERE SomeColumn > 100)
我像这样修改了查询语句
1: DECLARE @Count INT
2: SELECT @Count = COUNT(*)
3: FROM RemoteServer.SomeDB.dbo.SomeTable
4: WHERE SomeColumn > 100
5:
6: SELECT *
7: FROM LocalTable
8: WHERE SomeColumn < @Count
这样重写SQL后,查询语句只跑了一秒就查询出结果了,保持SQL脚本简单。
5:当数据库位于同一个实例时使用链接服务器(Linked Server)
这种场景的性能损耗可能不像其它场景那样明显,但是这种方式比使用数据库前缀(Database.dbo.TableName)要慢
如果你想区别这两种情形,可以在测试数据库测试、对比这两种方法的性能,然后决定性能的提升是否值得在生产环境修改代码。在某些情况下,它是会提升性能的。
主要问题:1、性能问题 2、安全问题
SQL Sever--Linked Servers
标签:code 重写 函数 好的 大量 sel for column 条件