1

我刚刚了解了使用 ORACLE_DATAPUMP 进行并行访问以卸载数据的概念。但无法正确理解它 - 关于并行性。因此,任何人都可以通过少量代码帮助我了解并行进程如何启动并将数据加载到其各自的文件中。

代码:

CREATE TABLE all_objects_xt
  ORGANIZATION EXTERNAL
  (
     TYPE ORACLE_DATAPUMP
     DEFAULT DIRECTORY xt_dir
       LOCATION ( 'allobj1.dmp', 'allobj2.dmp' )
  )
  PARALLEL
  AS
     SELECT *
     FROM   all_objects;

对于并行卸载,文件偏移量分布在并行进程之间,以便在一个文件或一组文件内进行多个并发处理。- 无论如何可以解释它(偏移概念)是如何在实时编程中发生的。?

4

1 回答 1

0

Oracle Parallel 子句的第一件事:它取决于 CPU 的数量。一般影响cpu个数×2=并行执行度。第二件事,并行操作也取决于 PARALLEL_MAX_SERVERS 参数,因为这是最大边界限制。

您正在使用来自 2 个不同转储文件的 ORACLE_DATAPUMP 驱动程序选项创建一个外部表。每当此外部对象引用时,都会填充数据。您也可以在创建此外部表期间放置 Parallel 4 或 Parallel 6 子句。这意味着 4 个并行线程将执行任务或 6 个将执行任务。

如果您想检查上述对象的并行处理,请进行以下测试。

以外部表的所有者或特权用户身份打开 1 个会话并执行选择查询。立即以 SYSDBA 或 DBA 身份打开另一个会话,并从以下数据字典视图执行查询。

从 V$PQ_SESSTAT 中选择 *;从 V$PQ_SYSSTAT 中选择 *;

V$PQ_SESSTAT 将为您提供现有并行操作的准确结果。表示执行了多少查询以及查询正在使用多少并行服务器。我希望你现在清楚了。

于 2015-01-05T14:27:00.233 回答