为了账号安全,请及时绑定邮箱和手机立即绑定

非常简单奇怪的SQL错误。。请高手帮忙看看了

非常简单奇怪的SQL错误。。请高手帮忙看看了

拉丁的传说 2018-12-07 13:14:07
select top 10 *  from V_data where TypeID=1 and ID not in (select top 20 ID from V_data where TypeID=1  order by AddDate desc)  order by AddDate desc   上面sql语句黑字部分正常执行,但加上红字部分后,就总是超时,数据表就2W的数据。。这是咋回事啊。。。。
查看完整描述

11 回答

?
慕虎7371278

TA贡献1802条经验 获得超4个赞

首先,该分页语句不是很通用。性能较差。

其次,order by用在非索引字段上导致耗时较长。可以看一下执行计划,最后排序消耗的占用比例是多少。

AddDate上加上索引应该会有所改善。

可以先试一下

select top 10 *  from V_data order by  AddDate asc

看看执行时间。

查看完整回答
反对 回复 2019-01-07
?
BIG阳

TA贡献1859条经验 获得超6个赞

AddDate建立索引了吗?

查看完整回答
反对 回复 2019-01-07
?
当年话下

TA贡献1890条经验 获得超9个赞

我把 order by AddDate desc,改成 order by ID desc,也是超时

查看完整回答
反对 回复 2019-01-07
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

@East神奇: 看一下执行计划

查看完整回答
反对 回复 2019-01-07
?
慕容708150

TA贡献1831条经验 获得超4个赞

还是不行,我把视图 换成表了,就没问题了。。。不知道怎么回事

查看完整回答
反对 回复 2019-01-07
?
米琪卡哇伊

TA贡献1998条经验 获得超6个赞

看你的sql的意思是分页,但是这样的分页肯定效率是很低的。

查看完整回答
反对 回复 2019-01-07
?
红糖糍粑

TA贡献1815条经验 获得超6个赞

请问下,你在项目中一般是怎么分页的啊?

查看完整回答
反对 回复 2019-01-07
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

@East神奇: GOOGLE一下,网上很多

查看完整回答
反对 回复 2019-01-07
?
三国纷争

TA贡献1804条经验 获得超7个赞

百度一下吧 谢谢

查看完整回答
反对 回复 2019-01-07
?
慕斯709654

TA贡献1840条经验 获得超5个赞

create index idx_AddDate on  V_data  (AddDate)

查看完整回答
反对 回复 2019-01-07
  • 11 回答
  • 0 关注
  • 681 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信