怎么建立索引消除order by对性能的影响?

ideal_01 2012-04-08 09:10:49
数据量在10万条左右,查询语句如下
select ID ," + tdEnName + " from " + tdTableName + " where TRANSFERID ='" + getCookies("user_id") + "' and archid = '" + archID + "'and " + DropDownList1.SelectedItem.Value + " like '%" + ASPxTextBox1.Text.ToString().Trim() + "%' and checkstatus like '%" + ASPxCbstatus.SelectedItem.Value + "%' order by ID desc
经测试带"order by ID desc"与不带"order by ID desc"的查询语句,所耗用的时间相差10多倍,怎么建立索引消除"order by ID desc"所带来的对性能的影响???
...全文
337 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
zlb_chen 2012-04-11
  • 打赏
  • 举报
回复
astr := getCookies("user_id")
这个最好不要放在SQL语句中执行,先取出来,再加上条件。如上 astr;
没_没_没超疯 2012-04-10
  • 打赏
  • 举报
回复
索引只是在对数据进行过滤查询的时候起作用吧,排序的时候会用到索引吗?
zlb_chen 2012-04-10
  • 打赏
  • 举报
回复
你是主键,在ORACLE中 主键是自动成为索引的。不用建立。
ideal_01 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]

索引不能保证排序,要排序就要加order by语句
[/Quote]
哈哈,可能我表达的不清楚。
我的意思是,因为我用了order by,(数据量在20万左右)使系统的运行速度变慢了,现在我想给表急加索引,因为加索引可以使查询的速度提升。不知道你能不能明白我的意思??
何来lo 2012-04-10
  • 打赏
  • 举报
回复
索引不能保证排序,要排序就要加order by语句
ideal_01 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]

你是主键,在ORACLE中 主键是自动成为索引的。不用建立。
[/Quote]
确实ID自动建立了索引。因为我现在系统的速度很慢。
ID是主键,那TRANSFERID和archid不用建索引了吗?
ideal_01 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 的回复:]

索引只是在对数据进行过滤查询的时候起作用吧,排序的时候会用到索引吗?
[/Quote]
不会。
我的意思是,因为我用了order by,(数据量在20万左右)使系统的运行速度变慢了,现在我想给表急加索引,因为加索引可以使查询的速度提升。不知道你能不能明白我的意思??
ideal_01 2012-04-09
  • 打赏
  • 举报
回复
select ID ," + tdEnName + " from " + tdTableName + " where TRANSFERID ='" + getCookies("user_id") + "' and archid = '" + archID + "'and " + DropDownList1.SelectedItem.Value + " like '%" + ASPxTextBox1.Text.ToString().Trim() + "%' and checkstatus like '%" + ASPxCbstatus.SelectedItem.Value + "%' order by ID desc
就是这样的查询语句建立什么类型的索引啊???有没有人知道啊???
ideal_01 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]

建索引就能确保排序?
[/Quote]
确保排序后的性能不要太慢
ssqtjffcu 2012-04-09
  • 打赏
  • 举报
回复
建索引就能确保排序?
ideal_01 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

排序肯定要比不排序多费时间啊
[/Quote]
所以我才要建索引已弥补排序带来的性能损失。不过我对这个不太了解。望指教。建立什么类型的索引,都是什么字段建索引??
ideal_01 2012-04-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]

那就在ID上建立索引呀。
ID 不是主键吗/
[/Quote]
ID是主键,那TRANSFERID和archid不用建索引了吗?
youqi1984 2012-04-08
  • 打赏
  • 举报
回复
那就在ID上建立索引呀。
ID 不是主键吗/
秋雨飘落 2012-04-08
  • 打赏
  • 举报
回复
排序肯定要比不排序多费时间啊

3,491

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 高级技术相关讨论专区
社区管理员
  • 高级技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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