新手求助:30万条记录,不用存储过程,显示有些慢,听说索引可缓解一下,不知这个查询语句如何建索引!

wcl2222 2009-05-29 03:45:48
我的查询是这个:

conn.SelectCommand = "select top 100 a.*,(a.lev1+a.lev2+ a.lev3+a.lev4) as totalnum2,(b.lev1+b.lev2+ b.lev3+b.lev4) as totalnum,b.lev1_sum, b.id,b.uid,b.songname,b.song_man as songman from wlgs_ly a,wlgs b where a.songid=b.id " + wherestrb + wherestr + " order by " + ords;




总共涉及到两个表wlgs_ly和wlgs,其中wlgs_ly记录最多,目前已经超过30万记录!因为图省事,用gridview+SqlDataSource 控件来显示,不太懂SqlDataSource存储过程的应用,所以想到到在这个两个表上建索引,但具体不知将哪个字段建索引好,请高人指点!
...全文
57 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ai_li7758521 2009-05-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 Zoezs 的回复:]
create index ix_wlgs_ly_songid on wlgs_ly(songid)
create index ix_wlgs_id on wlgs(id)
排序字段要是重复比较多,就没必要建索引了。
[/Quote]支持
JonasFeng 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wcl2222 的回复:]
引用 1 楼 SQL77 的回复:
一般是加在ORDER BY 后面的字段上!


谢谢

但我有个疑问,因为 order by 的 字段,有一些是各个记录是相同的,比如发表的时间 ,不知能不能建,有影响吗!
[/Quote]


时间字段上最好不要建索引。
楼主的情况建一个复合索引就OK了。

Zoezs 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wcl2222 的回复:]
引用 1 楼 SQL77 的回复:
一般是加在ORDER BY 后面的字段上!


谢谢

但我有个疑问,因为 order by 的 字段,有一些是各个记录是相同的,比如发表的时间 ,不知能不能建,有影响吗!
[/Quote]
能建,建议你这样建索引
create index ix_wlgs_ly_songid on wlgs_ly(songid)
create index ix_wlgs_id on wlgs(id)
排序字段要是重复比较多,就没必要建索引了。
wcl2222 2009-05-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 SQL77 的回复:]
一般是加在ORDER BY 后面的字段上!
[/Quote]

谢谢

但我有个疑问,因为 order by 的 字段,有一些是各个记录是相同的,比如发表的时间 ,不知能不能建,有影响吗!
ks_reny 2009-05-29
  • 打赏
  • 举报
回复
兩個表關聯的字段上加索引.
SQL77 2009-05-29
  • 打赏
  • 举报
回复
一般是加在ORDER BY 后面的字段上!

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧