sql-server – 这个NO JOIN PREDICATE警告我应该感到警惕吗?
发布时间:2021-05-25 10:51:20 所属栏目:MsSql教程 来源:网络整理
导读:我正在对一个性能不佳的存储过程的各个部分进行故障排除.该程序的这一部分是抛出NO JOIN PREDICATE警告 select method = case methoddescription when 'blah' then 'Ethylene Oxide' when NULL then 'N/A' else methoddescription end,testmethod = case m
我正在对一个性能不佳的存储过程的各个部分进行故障排除.该程序的这一部分是抛出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 – Postgres:选择具有大于1的字段数的所有行
- mssql存储过程表名和字段名为变量的实现方案
- sql-server – 在SAN环境中对SQL索引进行碎片整理是否有任何
- sql-server – 根据Sql Server中的选定行生成插入脚本?
- sqlserver中怎么样解决复杂查询的问题?
- sql-server – 使用DISTINCT作为子查询中的提示有用吗?
- join – Spark 2.0.0错误:PartitioningCollection要求其所
- sql – Oracle Analytic函数 – 重置窗口子句
- 在sql Server自定义一个用户定义星期代码
推荐文章
站长推荐
热点阅读