数据库表数据的排序会增加内存的占用,如果待排序的数据量过大可能还会占用硬盘(也就是数据库的临时区域)。特别是我们表结构中存在一些比较大varchar字段或者我们查询的字段数量过多。这时我们可以采用下面方法来降低内存的消耗(并且能够提高查询的速度,亲测有效)
比如查询语句为(id unique): select id, person_name,person_code,dept_code,dept_name,content,log_time from t_tsps_conduct_audits order by log_time;
如上查询语句,数据量在超过500万以后,oracle下查询速度会20s左右(根据内容的不同以及机器配置的高低查询会略有差异),但是通过下面方法确使查询速度提高7-10倍左右,如:
select id from t_tsps_conduct_audits order by log_time;
然后查询(根据上面的查询id结果进行in查询):
select id, person_name,person_code,dept_code,dept_name,content,log_time from t_tsps_conduct_audits where id in('asdf','23452345');