有一个表可以通过并行运行的多个批次进行更新。即 - 应用程序运行分析,该分析具有分析ID和 - 此分析批量插入数据到“ANALYSIS_TABLE”表中并且每批都有一个批处理ID 我需要收集此表上的统计信息“ANALYSIS_TABLE “每批完成时。收集有关Oracle中子分区表的统计信息
表中的结构是:
Analysis_id | Batch_id | Analysis_Val | Specific_key | ----------- | ------ | ------------ | ------------ A1 | B1 | 2.0 | A1-B1 | A1 | B1 | 5.0 | A1-B1 |
我需要调用收集等, 呼叫pack_stats.gather_table_stats( 'ANALYSIS_TABLE', 'A1-B1'),
call pack_stats.gather_table_stats('ANALYSIS_TABLE','A1-B2') (*if it has a
value for specific_key column like 'A1-B2'*)
and so on.
统计但是当我打电话给这个时,oracle并没有识别出键'A1-B1','A1-B2'等。
表'ANALYSIS_TABLE'是一个子分区表。 执行下面的查询显示了其在“Specific_key”列没有关系的数据subpartition_key:
*select table_name, partition_name,subpartition_name, last_analyzed,
num_rows from user_tab_statistics where table_name='ANALYSIS_TABLE' and
partition_name='P000000000563'*
Table_name | partition_name | subpartition_name | last_analyzed | num_rows| --------------| -------------- | ----------------- | ------------- | -------- ANALYSIS_TABLE | P000000000563 | (null) | 04-Apr-17 | 2 | ANALYSIS_TABLE | P000000000563 | P000000000563_null | 04-Apr-17 | 0 | ANALYSIS_TABLE | P000000000563 | P000000000563_DEFAULT| 04-Apr-17 | 2 |
我怎样才能确保在我的第一台“specific_key”列中的值反映在user_tab_statistics的subpartition_name列中?
或更确切地说,如何在'specific_key'列和subpartition_name列之间建立关系。
如我刚才提到的那样,每个批次收集统计数据的其他想法也是受欢迎的。
谢谢!