oracle 中查询按某种要求条件查询结果,如何能够提高效率?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle 中查询按某种要求条件查询结果,如何能够提高效率?相关的知识,希望对你有一定的参考价值。

比如普通查询最新数据是select * from(select * from table order by create_date desc)where rownum<=1;这样的话,每次都要对所有的数据重新排列。感觉应该效率很低,如果是多少万条数据的话,应该如何查询?新手求指点。

如果表的数量级大了的话,建议做成分区表,举例说下比如存一年的数据可以按12个月拆成12个分区,然后建立分区索引,再在日期上边建立索引,查询的效率会提高。
如果数据每天都在百万以上可以按12个月把一张表拆成12张表,这12张表是按天建立的分区表,再加上分区索引和日期索引,查询效率会有很大的提升。
参考技术A 给表加一个日期字段,并按日期字段建立索引,每次查日期最新的可以吗 参考技术B 对create_date建立索引

oracle 如何把同一个表的同一个字段按条件分成不同的字段查询出来结果集?例如:

TAB_A表中列为:A,B,C
查询出结果集为A,B,C,D四个列
当C = 1时,B 的值在结果集B列中。
当C = 2 时,B的值在结果集的C列中。
要效率高点的。

参考技术A select a,decode(c,1,b,null)b,decode(c,2,b,null)c from tab_a
不知道d是啥
没测试,仅供参考本回答被提问者和网友采纳

以上是关于oracle 中查询按某种要求条件查询结果,如何能够提高效率?的主要内容,如果未能解决你的问题,请参考以下文章

oracle数据库如何按多个条件查询数据。

oracle中如何只查询一条复合条件的记录,即查到一条记录就返回

Distinct vs row_number() - 使用相同条件的查询在oracle中给出不同的结果?

oracle sql查询求助

Mysql语句,如何按两个不同条件查询数据~?

C# WPF SQL 多条件查询