sql-server – 这个NO JOIN PREDICATE警告我应该感到警惕吗?
发布时间:2021-05-25 10:30:21 所属栏目:MsSql教程 来源:网络整理
导读:我正在对一个性能不佳的存储过程的各个部分进行故障排除.该程序的这一部分是抛出NO JOIN PREDICATE警告 select method = case methoddescription when 'blah' then 'Ethylene Oxide' when NULL then 'N/A' else methoddescription end,testmethod = case meth
|
我正在对一个性能不佳的存储过程的各个部分进行故障排除.该程序的这一部分是抛出NO JOIN PREDICATE警告 select
method =
case methoddescription
when 'blah' then 'Ethylene Oxide'
when NULL then 'N/A'
else methoddescription
end,testmethod =
case methoddescription
when 'blah' then 'Biological Indicators'
when NULL then 'N/A'
else 'Dosimeter Reports'
end,result =
case when l.res is null or l.res <> 1 then 'Failed'
else 'Passed'
end,datecomplete = COALESCE(CONVERT(varchar(10),NULL,101),'N/A')
from db2.dbo.view ls
join db1.dbo.table l
on ls.id = l.id
where item = '19003'
and l.id = '732820'
视图([ls])调用远程服务器(计划右侧的远程查询A). 这是该计划的图像: 因为this blog post我只问这个问题而且我想确保以后再也不会再咬我了. 解决方法因为我们知道l.id =’732820’和ls.id = l.id然后SQL Server派生出ls.id =’732820′即 FROM db2.dbo.VIEW ls
JOIN db1.dbo.table l
ON ls.id = l.id
WHERE l.id = '732820'
是相同的 ( /*...*/ FROM db2.dbo.VIEW ls WHERE id = '732820' ) CROSS JOIN ( /*...*/ FROM db1.dbo.table l WHERE id = '732820' ) 这次重写是not bad for performance.
(编辑:天瑞地安资讯网_保定站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server – SQL Server需要分区数据,但只有标准版
- 学习 – 为什么数据库管理如此困难?
- 实体框架 – 具有Identity列的SQL Server Compact 4.0表中插
- 详解HTML表格
- sql-server – SQL Server遇到的前3个性能问题是什么?
- sql-server-2005 – 如何在SQL Server 2005中撤消删除操作?
- 数据库设计 – 在具有缩写表名的表中为每个字段名添加前缀是
- sql-server – 在“select top n”查询中返回未锁定的行
- sql-server – 在IF EXISTS中包装查询使得它非常慢
- azure-sql-database – 从Azure中的WebJob访问SQL数据库
站长推荐
热点阅读

