首页 新闻 会员 周边 捐助

这个SQL执行效率比较低,求助

0
悬赏园豆:10 [已解决问题] 解决于 2013-11-29 11:49

select * from
(
select row_number() over(order by Q.id desc) as
rownum,Q.id,channel_id,category_id,title,link_url,img_url,seo_title,seo_keywords,seo_description,[content],sort_id,click,is_lock,[user_id],add_time,author,[from],zhaiyao,is_msg,is_top,is_red,is_hot,is_slide from
dt_article Q  
inner join dbo.dt_article_news W
on Q.id=W.id  
WHERE channel_id=6 and is_lock=0 and is_top=1
)
AS items
WHERE items.rownum BETWEEN 2 AND 3  order by id desc

 

我这个SQL是希望冲dt_article表读取指定位置的行数的文章

比如上面的SQL是调取结果集中的第2,3行

我用性能监视发现这种调取方法很耗时,请问有没有替代的方法?

PKSEO_dudu的主页 PKSEO_dudu | 初学一级 | 园豆:9
提问于:2013-10-31 16:15
< >
分享
最佳答案
0

对Where条件的字段做索引。

收获园豆:2
幻天芒 | 高人七级 |园豆:37205 | 2013-10-31 23:49

做了索引速度还是很慢!
您还有其他高招吗?
谢谢

PKSEO_dudu | 园豆:9 (初学一级) | 2013-11-01 11:44

@PKSEO_dudu: 数据量多大啊?这样的语句不应该会很慢啊~

幻天芒 | 园豆:37205 (高人七级) | 2013-11-01 20:25
其他回答(2)
0

试试 逐个在  channel_id, is_lock and is_top 做索引

收获园豆:5
Yu | 园豆:12990 (专家六级) | 2013-10-31 16:30

一起做个非聚集索引?

支持(0) 反对(0) PKSEO_dudu | 园豆:9 (初学一级) | 2013-11-01 09:33

@PKSEO_dudu: 你可以先看看执行计划有没有建议

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-11-01 09:41

@Yu: 执行计划 怎么看?谢谢!

支持(0) 反对(0) PKSEO_dudu | 园豆:9 (初学一级) | 2013-11-01 11:42

@PKSEO_dudu:在SQL SERVER 管理器执行图标(向右三角形图标)图标栏上 有个 “显示执行计划”的图标,在执行SQL前,让它显示就行 

支持(0) 反对(0) Yu | 园豆:12990 (专家六级) | 2013-11-01 12:48
0

over 里面不需要排序了,外面已经排序了。用over(select(0))

 

select * from ( select row_number() over(select(0))) as rownum,Q.id,channel_id,category_id,title,link_url,img_url,seo_title,seo_keywords,seo_description,[content],sort_id,click,is_lock,[user_id],add_time,author,[from],zhaiyao,is_msg,is_top,is_red,is_hot,is_slide from dt_article Q   inner join dbo.dt_article_news W on Q.id=W.id   WHERE channel_id=6 and is_lock=0 and is_top=1 ) AS items WHERE items.rownum BETWEEN 2 AND 3  order by id desc

收获园豆:3
雾静 | 园豆:561 (小虾三级) | 2013-10-31 16:37

over 里面再排序是不是会影响性能?

支持(0) 反对(0) PKSEO_dudu | 园豆:9 (初学一级) | 2013-11-01 09:29

@PKSEO_dudu: 很影响性能

支持(0) 反对(0) 雾静 | 园豆:561 (小虾三级) | 2013-11-11 16:26

你试试采用我这种速度是否有提升,验证一下不就好了么

支持(0) 反对(0) 雾静 | 园豆:561 (小虾三级) | 2013-11-11 16:27
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册