我有一个oracle过程,它将"table1 Partition(P1)"中的所有行插入到table2中。我更新了表2中的一个字段,然后将分区交换回表1:
Alter Table table1 Exchange Partition P1 WITH TABLE table2 Including Indexes Without Validation;
这是有效的。
问题:之后我需要收集表格统计数据吗?代码:
EXECUTE Dbms_Stats.Gather_Table_Stats (Ownname => 'MySchema', Tabname => 'Table1', Partname
=> 'P1, Granularity => 'ALL', Degree => 32);
运行需要很长时间,并且还涉及一些其他问题。
非常感谢,我在谷歌上搜索了一下,找不到确切的答案
- Steve
Oracle Database 11g Enterprise Edition 11.2.0.3.0版-64位生产版
运行exchange partition
时,表的统计信息将变为分区的统计信息,分区的统计数据将变为表的统计数据,即统计信息也会交换。
这里我有一个有三个分区的表,最初所有的统计数据都在那里:
0:admspm@spmdtz> printStats -p location -- (*)
Table_Name|object_Type |subobject |last_Analyzed|num_Rows|sample_Size|
-------------------------------------------------------------------------
LOCATION |Table | |06.04. 15:23 | 817| 817|
LOCATION |TablePartition|PARTITION_1|06.04. 15:23 | 272| 272|
LOCATION |TablePartition|PARTITION_2|06.04. 15:23 | 272| 272|
LOCATION |TablePartition|PARTITION_3|06.04. 15:23 | 273| 273|
现在,换出一个分区并将其换回:
0:admspm@spmdtz> create table xxx as select * from location where par_id=3;
Table Xxx created.
0:admspm@spmdtz> alter table location exchange partition partition_3
with table xxx;
Table Location altered.
统计数据都不见了:
0:admspm@spmdtz> printStats -p location
Table_Name|object_Type |subobject |last_Analyzed|num_Rows|sample_Size|
-------------------------------------------------------------------------
LOCATION |Table | |06.04. 15:23 | 817| 817|
LOCATION |TablePartition|PARTITION_1|06.04. 15:23 | 272| 272|
LOCATION |TablePartition|PARTITION_2|06.04. 15:23 | 272| 272|
LOCATION |TablePartition|PARTITION_3| | | |
然而,当我分析交换表"XXX"时
0:admspm@spmdtz> stats -gT xxx -- (*)
换回来,我再次得到正确的统计数据
0:admspm@spmdtz> alter table location exchange partition partition_3
with table xxx;
Table Location altered.
0:admspm@spmdtz> printStats -p location
Table_Name|object_Type |subobject |last_Analyzed|num_Rows|sample_Size|
-------------------------------------------------------------------------
LOCATION |Table | |06.04. 15:23 | 817| 817|
LOCATION |TablePartition|PARTITION_1|06.04. 15:23 | 272| 272|
LOCATION |TablePartition|PARTITION_2|06.04. 15:23 | 272| 272|
LOCATION |TablePartition|PARTITION_3|02.10. 18:24 | 273| 273|
(*)这些命令由senora工具提供