0

这里的要求是向用户提供特定工厂或零件编号的预测详细信息。预测详细信息来自几个源表并由一个视图联合。在此视图上创建一个物化视图 (MV),以便更快地访问数据。在记录了这支 MV 之后,它的 500K+ 即将到来。

我们有一个 DOTNET 应用程序网页,用户在其中选择工厂或输入零件并从上述 MV 请求这些过滤器的数据。部分过滤器工作正常,但植物过滤器几乎需要 20 分钟来提取某些植物的数据。

根据进一步分析,我发现很少有植物在 MV 中有超过 50K 行。检索 50K+ 记录有问题吗?

以下是查询,当 Executed 快速运行,但同时使用 Execute Script 选项执行时,需要 5-6 分钟才能返回行。

SELECT  /*+ hint first_rows(1000) */
PLANT,MATERIAL_NBR,SOLD_TO_CODE,SHIP_TO_CODE,SHIP_TO_NAME,SHIP_TO_PLANT,SHIP_TO_LABEL_FMT,ORD_QTY,ALLOC_QTY,
due_date, PRIME_CNTR,PRIME_UOI,SEC_CNTR,BASE_UOM,ORDER_TYPE,SHIP_POINT,REC_TYPE  
FROM GTCPDBA.VW_FORECAST_REQMNTS_DET 
Where PLANT ='FR10';

请提出一些意见。

4

1 回答 1

0

您确定要使用 first_rows 优化器提示吗?当您的应用程序支持生产者-消费者设计模式时,应该使用这个。即你有后台线程,它从数据库中获取数据并将它们显示在“厚”客户端的屏幕上。

在 3-TIER Web 应用程序上很难实现这样的事情。

于 2013-04-23T07:32:19.127 回答