首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

10万数据的排序,无索引,怎么把时间缩短到半分钟以内

2012-03-14 
10万数据的排序,无索引,如何把时间缩短到半分钟以内?select a.*,(case when a.col1 like %?%then ? else

10万数据的排序,无索引,如何把时间缩短到半分钟以内?
select a.*,
  (case when a.col1 like '%?%'
  then ? else ?) as score1,
  (case when a.col2 like '%?%'
  then ? else ?) as score2,
  (case when a.col3 like '%?%'
  then ? else ?) as score3,
  .....
  .....
  (case when a.col12 like '%?%'
  then ? else ?) as score12

from A a
order by (score1+score2+.......score12)



?是动态传入的值,由页面输入。如何优化这条sql。我怎么都觉得没什么可能。但是需求还不能变,无奈啊。
是不是需要改变算法。求大神。

[解决办法]
无索引,like语句,有点坑爹啊,里面有BLOB字段么?我先想想!
[解决办法]
你直接order by decode()試試看
[解决办法]
不好优化,不知道你的需求是不是计分排序.如果是的话可以把你的表结构.和大体需求描述一下,看看能不能重新设计一下.

热点排行