SQLServer性能优化之改写SQL语句
来源:互联网 发布:人工智能在电网的应用 编辑:程序博客网 时间:2024/05/17 12:22
性能优化之SQL语句改写
有这样一条SQL,在系统性能视图中显示执行时间30秒,单独拿出来执行时间6秒
SELECT *
FROM TABLEA
WHERE COND1 AND (A.FIELD2<>6 AND A.FIELD1 NOT IN (SELECT REPLACE(FIELD1,'Y','') FROM TABLEB WHERE ...)
OR
A.FIELD2=6 AND A.FIELD1 NOT IN (SELECT FIELD1 FROM TABLEB WHERE ...)
)
ORDER BY 1
优化步骤
首先把COND1之前的语句拿出来执行约0秒
其次分别执行每个单独的子查询(NOT IN中的子查询)语句也是0秒
再次把OR的语句分别执行,发现执行速度均是0秒
分析问题可能出现在两个子查询的合并上,干脆直接把SQL语句改写成两个独立的语句再进行UNION试试看,如下格式
SELECT * FROM
(
SELECT * FROM TABLEA WHERE COND1 AND A.FIELD2<>6 AND A.FIELD1 NOT IN (SELECT REPLACE(FIELD1,'Y','') FROM TABLEB WHERE ...)
UNION
SELECT * FROM TABLEA WHERE COND1 AND A.FIELD2=6 AND A.FIELD1 NOT IN (SELECT FIELD1 FROM TABLEB WHERE ...)
)A
ORDER BY 1
执行后0秒,OK!
- SQLServer性能优化之改写SQL语句
- 改写SQL语句优化MySQL性能
- SQLServer性能优化之SQL语句性能测试
- 数据库性能优化之SQL语句优化
- ORACLE性能优化之SQL语句优化
- ORACLE性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- 数据库性能优化之SQL语句优化
- iframe 项目总结 how to use merge UIImage
- 用OpenInventor实现的NeHe OpenGL教程-第三课
- MD5&SHA加密util类(Java)
- 网络安全技术
- wikipedia上的AMQP介绍
- SQLServer性能优化之改写SQL语句
- Extjs
- 如何将XMLA转换为PMML
- ubuntu 下的开机自动启动管理程序
- 有关struts2+jquery+treeview的应用总结
- css样式控制居中
- fatal error LNK1169: one or more multiply defined symbols found终极解决【转】
- eaccelerator为啥不起使用?
- iframe 项目总结 how to use merge UIImage2