日期:2014-05-16  浏览次数:20488 次

转---借助内存表处理复杂的oracle查询要求.

借助内存表处理复杂的oracle查询要求.

在日常业务处理过程中,我们经常会碰到一些非常规的查询需求, 这些需求我们或者可以借助动态语句,或者其他现有的oracle函数完成查询结果, 但效率往往差强人意.

假设我们有一个客户订单业务表{订单号, 订单客户, 订单日期, 数量, 金额}存储了订单的往来明细数据,订单表中保存最近3个月的往来明细共1000w条记录, 其中客户总量约500000. 并假定在订单表上有针对日期和客户的单独索引.

现在要求提供对任意集合的多个客户的某段时间的订单明细数据.

Select 订单号, 订单客户, 订单日期, 数量, 金额

From 订单业务表

Where 订单日期 between 开始日期 and 结束日期

And 订单客户 in (客户1, 客户2, 客户3…)

面对这种需求, 我们可以要求前台程序传回三个参数, 开始日期, 结束日期, 客户列表(类似于 客户1, 客户2, 客户3, 客户