sql – 此SELECT查询需要180秒才能完成
发布时间:2020-12-12 16:35:03 所属栏目:MsSql教程 来源:网络整理
导读:更新: 只是在更明显的地方提及它.当我更改IN为=时,查询执行时间从180下降到0.00008秒.可笑的速度差 这个SQL查询需要180秒才能完成!怎么可能?有没有办法优化它来更快? SELECT IdLawVersionValidFrom FROM question_law_version WHERE IdQuestionLawVersion
更新:
只是在更明显的地方提及它.当我更改IN为=时,查询执行时间从180下降到0.00008秒.可笑的速度差 这个SQL查询需要180秒才能完成!怎么可能?有没有办法优化它来更快? SELECT IdLawVersionValidFrom FROM question_law_version WHERE IdQuestionLawVersion IN ( SELECT MAX(IdQuestionLawVersion) FROM question_law_version WHERE IdQuestionLaw IN ( SELECT MIN(IdQuestionLaw) FROM question_law WHERE IdQuestion=236 AND IdQuestionLaw>63 ) ) 每张表中只有约5000行,所以不应该这么慢. 解决方法(发表我的评论作为一个答案,显然这样做有所作为!)
如果有人想进一步调查,我刚刚做了一个测试,发现它很容易复制. 创建表 CREATE TABLE `filler` ( `id` int(11) NOT NULL AUTO_INCREMENT,PRIMARY KEY (`id`) ) 创建过程 CREATE PROCEDURE `prc_filler`(cnt INT) BEGIN DECLARE _cnt INT; SET _cnt = 1; WHILE _cnt <= cnt DO INSERT INTO filler SELECT _cnt; SET _cnt = _cnt + 1; END WHILE; END 填充表 call prc_filler(5000) 查询1 SELECT id FROM filler WHERE id = (SELECT MAX(id) FROM filler WHERE id = ( SELECT MIN(id) FROM filler WHERE id between 2000 and 3000 ) ) Equals Explain Output http://img689.imageshack.us/img689/5592/equals.png 查询2(同样的问题) SELECT id FROM filler WHERE id in (SELECT MAX(id) FROM filler WHERE id in ( SELECT MIN(id) FROM filler WHERE id between 2000 and 3000 ) ) In Explain Output http://img291.imageshack.us/img291/8129/52037513.png (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- MySql 8.0.11-Winxp64(免安装版)配置教程
- sqlserver 批量更新表中的值 把某个字段更新成另外一个表的
- 数据库(MySQL)和SSD生命周期 – 对DB的写入“很多”
- R:与第二个表合并更新表的高效方法来自相同列名的值填充NA
- SQLServer里面的一些时间处理
- SQLServer 请验证实例名称是否正确并且 SQL Server 已配置为
- sql-server – Nhibernate:如何为SqlDateTime溢出异常找到
- sqlserver无法在数据库上放置锁
- sql-server – 与varchar(255)相比,使用varchar(5000)会不好
- sql-server – 如何在不从SQL Server中删除程序集的情况下更
推荐文章
站长推荐
- SQL Server检查IsNull和为零
- MySQL DBA教程:Mysql性能优化之缓存参数优化
- SQL Server 数据库存储过程分页显示
- sql-server – varchar(255)或varchar(256)?
- SQLServerException: Arithmetic overflow error
- 由Entity Framework生成的SQL用于字符串匹配
- SQL在一个查询中统一COUNT和SUM
- sql-server – SQL Server Management Studio:图
- 比较 sqlserver2005、Oracle PL/SQL创建存储过程
- 微博数据入库到sqlserver
热点阅读