oracle 索引问题!求解!求帮助!!

yue547283947 2011-08-03 06:06:07
table1(id,type,info) id字段:是guid 字符串 type字段:字符串类型 如 '010000' info字段: varchar2(2000)

aaaaq 010000 阿萨德212饿阿萨德asd。。。。。

bbbas 030000 阿斯发达省份adf23。。。。

table2(id,name)id字段:是guid 字符串 name字段:varchar2(100)

aaaaq 阿斯达岁的

bbbas 阿萨德


每个表的数据在400万以上

问题 1
select * from table1 where type='010000' and info like '%阿斯%' 这个查询执行很慢

我找资料说用全文索引 然后
select * from table1 where contains(info, '阿斯')>0 很快 但加上 and type='010000' 速度又慢了

我给 type加个索引 还是很慢 请问怎么办??

问题2
select t.type,d.name FROM table1 t,table2 d where t.id=d.id and contains(t.info ,'人民')>0
这样连接查询超级慢

怎么办?

求助。。。。求大家给点解决办法 小弟在此谢过了。
...全文
166 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
yue547283947 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 ulihss 的回复:]
最好不要用like因为这是导致查询速度慢的最主要的原因。
如果数据量大的话那查询就会特别的慢。
[/Quote]

需求啊。。。。需求要 我能怎么办呢?
Kobayashi 2011-08-05
  • 打赏
  • 举报
回复
最好不要用like因为这是导致查询速度慢的最主要的原因。
如果数据量大的话那查询就会特别的慢。
yue547283947 2011-08-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ulihss 的回复:]
如果你用全文索引那这个索引相当于没有建。。
速度还是会和以前的速度是一样的。。
不会有减少。。。
你建索引要根据你的Where后面的条件来确定的。
[/Quote]

like '%啊啊%'这样的where条件 我能怎么办? 前提是改成这样都不行 like '啊啊%'
Kobayashi 2011-08-05
  • 打赏
  • 举报
回复
如果你用全文索引那这个索引相当于没有建。。
速度还是会和以前的速度是一样的。。
不会有减少。。。
你建索引要根据你的Where后面的条件来确定的。
yue547283947 2011-08-05
  • 打赏
  • 举报
回复
问题还没解决 不能就这么沉了
hanzs 2011-08-05
  • 打赏
  • 举报
回复
既然允许用户 like '%啊啊%' 这样查询,那就只能牺牲性能

oracle不是万能的,有时也要业务上变通下的~~~
yue547283947 2011-08-05
  • 打赏
  • 举报
回复



大牛们呢?
yue547283947 2011-08-04
  • 打赏
  • 举报
回复


全文索引 位图索引 2个索引一起用为什么没效果?
Kobayashi 2011-08-04
  • 打赏
  • 举报
回复
你这样只把效果拿出来我们是解决不了问题的。只能大致的知道一些。你要把你的SQL执行之后的结果拿出来。这样我们才好分析问题。因为你们的表的设计都不知道。。问题怎么解决?
灰哥 2011-08-03
  • 打赏
  • 举报
回复
问题 1
select * from table1 where type='010000' and info like '%阿斯%' 这个查询执行很慢

我找资料说用全文索引 然后
select * from table1 where contains(info, '阿斯')>0 很快 但加上 and type='010000' 速度又慢了

我给 type加个索引 还是很慢 请问怎么办??

问题2
select t.type,d.name FROM table1 t,table2 d where t.id=d.id and contains(t.info ,'人民')>0
这样连接查询超级慢

第一个,你的写法是'%=阿斯%' ,你这样写就算有索引oracle也不会给你走索引的,如果用like模糊查询oracle只对like '阿斯%'这样的语句才会进行索引检索数据。
问题2你如果在id上加了索引还没效果那就还真得好好看看了。
woodqlin 2011-08-03
  • 打赏
  • 举报
回复
先看看oracle的执行计划,看看查询时索引有没有生效
Rotel-刘志东 2011-08-03
  • 打赏
  • 举报
回复
1、在type字段建立索引,是必须的。
2、info字段建立索引。
yue547283947 2011-08-03
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 benchim888 的回复:]
问题1
如果你的 type 字段中重复记录很多的话,建立一个 bit map 索引,可以提高查询速度。

问题2
T2表的ID字段上建立一个索引。
[/Quote]

第一个效果不明显 第二个几乎没效果。。。
BenChiM888 2011-08-03
  • 打赏
  • 举报
回复
问题1
如果你的 type 字段中重复记录很多的话,建立一个 bit map 索引,可以提高查询速度。

问题2
T2表的ID字段上建立一个索引。
代码下载地址: https://pan.quark.cn/s/35e46f7e83fb 关于 Build Status Lines of code 这是一个参考 PotPlayer 的界面使用 Java 以及图形界面框架 JavaFX 使用 MCV 图形界面与业务逻辑分离的开发模式, 所开发的个人视频播放器项目, 开发这个项目旨在于学习图形界面框架 JavaFX 实现了具有和 PotPlayer相同 的简洁界面和流畅的操作逻辑。 Note: PotPlayer 是 KMPlayer 的原制作者姜龙喜先生(韩国)进入 Daum 公司后的 新一代网络播放器, PotPlayer的优势在于强大的内置解码器以及支持各类的 视频格式, 而且是免费下载提供使用的。 目前版本: 2020/10/28 v1.0.0 [x] 支持打开文件自动播放 [x] 支持查看播放记录 [x] 支持屏幕边沿窗口自动吸附 [x] 支持双击视频来播放和暂停 [x] 支持左键点击窗口任意位置来拖到窗口 [x] 支持左键双击播放窗口打开文件 [x] 支持根据视频尺寸自动调整窗口大小 [x] 支持根据播放文件类型调整窗口模式 [x] 支持根据视频尺寸自动调整窗口显示位置防止超出屏幕 [x] 支持记录上一次访问的文件路径 [x] 支持播放记录文件读写 已实现样式 未播放效果: 播放效果: 运行环境 本项目使用 NetBeans 配合 JDK 开发, NetBeans8.0 以及 JDK8.0 以上版本的均可以运行。 亦可使用其他集成开发环境, 例如 Eclipse, IntelliJ IDEA 配合使用 JDK8.0 以上版本均可构建此项目。 NetBeans download Eclipse downlo...

17,137

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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