在项目中动态拼接sql语句,使用union all连接结果集,每个查询语句都使用了in(几百个数值)。语句如:

SELECT AA FROM T1 WHERE aa IN(1,2,3,4..............................)
UNION ALL
SELECT AA FROM T2 WHERE aa IN(1,2,3,4..............................)

当in和union all 很多时执行就会发生异常

”查询处理器用尽了内部资源,无法生成查询计划。这种情况很少出现,只有在查询极其复杂或引用了大量表或分区时才会出现。请简化查询。如果您认为该消息的出现纯属错误,请与客户支持服务部门联系,了解详细信息。“

解决方法:

使用临时表把in语句改成EXISTS语句

CREATE TABLE #temp(id nvarchar(50))
INSERT INTO #temp(id) select 1 union select 2 union select 3 union select 4union select 5 SELECT AA FROM T1 WHERE EXISTS (SELECT 0 FROM #temp WHERE id=T1.aa)
UNION ALL
SELECT AA FROM T2 WHERE EXISTS (SELECT 0 FROM #temp WHERE id=T1.aa) DROP TABLE #temp;

性能改善:

修改前执行57秒报错,修改后14秒出结果,效果还是很明显的.

最新文章

  1. sudo:有效用户 ID 不是 0,sudo 属于 root 并设置了 setuid 位吗
  2. 【CityHunter】服务器端设计思路
  3. 用python实现计算1-2*((60-30+(-40/5)*(9-2*5/3+7/3*99/4*2998+10*568/14))-(-4*3)/(16-3*2))类似的公式计算
  4. 【线段树区间合并】HDU1540-Tunnel Warfare
  5. Ext.MessageBox消息框
  6. assert的用处
  7. asp.net中HTML代码编码、解码与页面的重定向
  8. 使用单用户模式破解Linux密码
  9. Oracle表空间、段、区和块
  10. CCNA第二讲笔记
  11. c# GridView Footor列求合计
  12. NOIP2012模拟试题【圆圈舞蹈( circle)
  13. ASP.NET Web Api构建基于REST风格的服务实战系列教程
  14. Spring Boot 基础教程系列学习文档
  15. JavaScript中的window对象的属性和方法;JavaScript中如何选取文档元素
  16. ueeditor 百度编译器使用onchange效果
  17. 使用Solrj 获取语句分词结果的代码
  18. hibernate ID
  19. SICP读书笔记 2.1
  20. day1作业二:多级菜单操作

热门文章

  1. 【零基础】Selenium:Webdriver图文入门教程java篇(附相关包下载)
  2. SRS之SrsHls::on_video详解
  3. 使用 PM2 将 Node.js 的集群变得更加容易
  4. Android屏幕横竖屏切换和生命周期管理的详细总结
  5. 快速解决设置Android 23.0以上版本对SD卡的读写权限无效的问题
  6. 在CentOS7阿里云服务器部署ThinkPHP5,并配置phpstrom实现同步开发(微信小程序及管理员后端)
  7. .NET开发辅助工具-ANTS Performance Profiler【转载】
  8. Redis 集群部署
  9. UNITY3D 添加预制的方法
  10. baidu echats简介