海量数据优化问题 本帖最后由 ll20100000 于 2013-02-22 17:24:55 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 先谢谢了!上面的SQL语句查询两个表,一个大表和一个小表。两个表都是走全表扫描,大表有索引但是没有走索引路线。不知道是为什么,条件当中已经都是索引字段了。会不会是函数压制了呢? xxxid3,xxxdate 字段上是否有索引?被选中的数据是否太多了,所以自动优化执行了全表扫描?另外 in 可以使用exists 代替 10g 以上 in 和existes没有区别了 貌似 目前我接触过的 exists 性能比in好多了。执行优化几条建议1- 把 in改为exists2- where 条件中有 <> 并且有函数 他是不会走索引的 考虑函数索引 1、语句的写法上没什么大问题,但我觉得最外侧的查询没有任何意义——但它对性能也几乎无影响2、table2 的这几个字段,xxxxid2、xxx、xxxtype、xxxstatus,有哪个是重复数据较少的,建上索引。3、table1 的xxxid3 字段重复率高么?不高的话建索引。4、xxxdate是分区关键字,但是细到什么程度呢?如果是按月的话,对该语句有帮助。按年的话则意义不大。5、3和4综合考虑,可建立xxxid3和xxxdate的复合全局索引。 赞同table:对xxxdate建local prefixed分区索引;xxxid3 根据可选性(就是重复率高低)可考虑建global prefixed分区索引。table2:根据查询条件建立恰当的索引。我遇到过一个类似的查询业务,优化前查询要几分钟,优化后只需0.05秒不到 SQL “+”是什么用途? 客户端服务设置时host填服务器端(虚拟的linux)的hostname和IP地址为什么效果不一样 请教一个大数据量更新的sql 数据库的选择问题 一个Oracle报表问题 我的oracle 数据库突然在网络中客户端oem中无法控制了 数据库备份有提示错误?帮帮我,楼上的朋友们 使用VC + ADO + ORACLE 的朋友请进 请教proc for oracle 的cc编译 急 关于ORACLE处理时间中的毫秒问题 oracle数据库导入导出(imp/exp)相关问题 数据库处理效率优化问题
先谢谢了!
上面的SQL语句查询两个表,一个大表和一个小表。两个表都是走全表扫描,大表有索引但是没有走索引路线。不知道是为什么,条件当中已经都是索引字段了。
会不会是函数压制了呢?
另外 in 可以使用exists 代替
10g 以上 in 和existes没有区别了 貌似
执行优化几条建议
1- 把 in改为exists
2- where 条件中有 <> 并且有函数 他是不会走索引的 考虑函数索引
4、xxxdate是分区关键字,但是细到什么程度呢?如果是按月的话,对该语句有帮助。按年的话则意义不大。5、3和4综合考虑,可建立xxxid3和xxxdate的复合全局索引。
赞同
table:对xxxdate建local prefixed分区索引;xxxid3 根据可选性(就是重复率高低)可考虑建global prefixed分区索引。
table2:根据查询条件建立恰当的索引。我遇到过一个类似的查询业务,优化前查询要几分钟,优化后只需0.05秒不到