【发布时间】:2013-04-23 05:59:04
【问题描述】:
这里的要求是向用户提供特定工厂或零件编号的预测详细信息。预测详细信息来自几个源表并由一个视图联合。在此视图上创建一个物化视图 (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';
请提出一些意见。
【问题讨论】:
-
访问脚本所在的路径会有延迟问题吗?我不明白为什么将它作为脚本执行或只是查询会真正产生影响
-
在 toad 中有一个称为执行脚本的选项。我的意思是
-
您是否 100% 确定您在执行和执行脚本中运行相同的查询?在一种情况下,也许您正在查询视图而不是物化视图(查询中的后缀 VW_ 似乎暗示了这一点)
标签: sql performance oracle oracle10g toad