问题描述:
我现在碰到的问题是这样的
我有这样一张表,数据量在300W 左右,里面有一个字段为 date 类型,暂假定为 searchDate 吧,
对它建了索引,还有三个 varchar2 的字段,暂假定为 A , B , C 吧,我的 sql 是这样的
select * from tableName where A = 'userName' and (B = 'XXX' or C = 'YYY') and searchDate > to_date('2008-01-01','yyyy-mm-dd')
and searchData < to_date('2008-07-01','yyyy-mm-dd')
在 pl-sql 中执行也就 2 秒左右 ,通过程序在公司服务器上查询时也要 7 秒左右,但是在生成环境查询时
的速度简直要让人抓狂了,要5 分钟左右,刚开始怀疑是服务器碎片问题,把表也重新 create 了,但还是一样的
真不知道怎么办了,现在被客户逼的受不了了,准备用分区表试试,但他们有不允许对查询条件现在,就算按月把数据
放到不同的分区,也要在程序里去拼数据,这样不是就失去了分区表的优势了吗?还请高手指点...现在真不知道怎么优化了
我现在碰到的问题是这样的
我有这样一张表,数据量在300W 左右,里面有一个字段为 date 类型,暂假定为 searchDate 吧,
对它建了索引,还有三个 varchar2 的字段,暂假定为 A , B , C 吧,我的 sql 是这样的
select * from tableName where A = 'userName' and (B = 'XXX' or C = 'YYY') and searchDate > to_date('2008-01-01','yyyy-mm-dd')
and searchData < to_date('2008-07-01','yyyy-mm-dd')
在 pl-sql 中执行也就 2 秒左右 ,通过程序在公司服务器上查询时也要 7 秒左右,但是在生成环境查询时
的速度简直要让人抓狂了,要5 分钟左右,刚开始怀疑是服务器碎片问题,把表也重新 create 了,但还是一样的
真不知道怎么办了,现在被客户逼的受不了了,准备用分区表试试,但他们有不允许对查询条件现在,就算按月把数据
放到不同的分区,也要在程序里去拼数据,这样不是就失去了分区表的优势了吗?还请高手指点...现在真不知道怎么优化了
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货