我有一个oracle过程,插入来自" table1 Partition(P1)"的所有行。进入table2。我更新table2中的一个字段,然后将分区交换回table1:
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);
需要很长时间才能运行,还有其他一些问题。
非常感谢,我用谷歌搜索,无法找到明确的答案
Oracle Database 11g企业版11.2.0.3.0版 - 64位生产
答案 0 :(得分:3)
运行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工具提供