有没有办法并行运行两个多维数据集构建:
例如,我有以下两个顺序运行的多维数据集构建:
BEGIN
DBMS_CUBE.BUILD(
'OLAPTRAIN."TIME", OLAPTRAIN.CHANNEL, OLAPTRAIN.PRODUCT, OLAPTRAIN.GEOGRAPHY, OLAPTRAIN.SALES_CUBE',
'CCCCC', -- refresh method
false, -- refresh after errors
1, -- parallelism
false, -- atomic refresh
false, -- automatic order
false); -- add dimensions
END;
BEGIN
DBMS_CUBE.BUILD(
'
OLAPTRAIN.FORECAST USING
(
EXECUTE OLAP DML ''do_forecast''
)',
'C', -- refresh method
false, -- refresh after errors
1, -- parallelism
false, -- atomic refresh
false, -- automatic order
false); -- add dimensions
END;
但是我希望这些能够以平行的方式构建。一个构建分别占用一个CPU。
可以在Analytic Workspace中实现吗?如果不是,我怎么能在PL / SQL代码中这样做?
感谢。
答案 0 :(得分:0)
DBMS_Scheduler可能就是您正在寻找的内容。
如果这是常规作业的一部分,那么创建一个同时执行这两个过程的调度程序链。
您可以调查使用SCHEDULER_JOB参数将构建作为自己的作业运行,但通常您必须编写自己的监视代码,以等待两个作业完成,调度程序链将为您处理。
https://docs.oracle.com/cd/B28359_01/server.111/b28310/scheduse009.htm#ADMIN10021
顺便说一句,您的代码将更加健壮:
BEGIN
DBMS_CUBE.BUILD(
script => 'OLAPTRAIN."TIME", OLAPTRAIN.CHANNEL, OLAPTRAIN.PRODUCT, OLAPTRAIN.GEOGRAPHY, OLAPTRAIN.SALES_CUBE',
method => 'CCCCC',
refresh_after_errors => false,
parallelism => 1,
atomic_refresh => false,
automatic_order => false,
add_dimensions => false);
END;