It seems that by checking the data dictionary information is not the cause of the problem, only by manually performing the process of collecting statistics to try to discover the problem.
In order to avoid the problems caused by the accidental resolution of the bug cannot be reproduced, but also in order to solve the bug in the process of using some special means without affecting the user's use, here through backup to establish a test environment, the following actions are performed in a test environment.
First, modify the next_date of the job corresponding to the statistics, make it run in the background, check the collection of statistics, and test the database for recurrence of the problem:
Sql> SELECT JOB, WHAT from User_jobs;
JOB WHAT
---------- ------------------------------------------------------------
Dbms_stats.gather_schema_stats (user, Cascade => true);
Sql> EXEC Dbms_job. Next_date (Sysdate)
The PL/SQL process has completed successfully.
Sql> COMMIT;
Submit completed.
After waiting for a while to check user_tables, it was found that other objects ' statistics were collected except for 3 partitioned tables:
Sql> SELECT table_name, last_analyzed from User_tables;
TABLE_NAME last_analyzed
------------------------------ -------------------
Ord_order_check 2009-08-07 16:11:55
Ord_order_check_term 2009-08-07 16:11:55
Ord_order_item_no_foshan 2009-08-07 16:11:55
Ord_order_item_no_shude 2009-08-07 16:11:55
Ord_order_oos_history 2009-08-07 16:11:57
Ord_order_pay 2009-08-07 16:12:02
Ord_order_return 2009-08-07 16:16:24
Ord_order_total_foshan 2009-08-07 16:16:26
Ord_order_total_shude 2009-08-07 16:16:26
Ord_purchase 2009-08-07 16:16:37
Ord_purchase_item 2007-05-03 15:33:17
Ord_order_item 2007-05-03 15:30:25
Ord_order 2007-05-03 15:23:42
Ord_order_receive 2009-08-07 16:15:00
14 rows have been selected.
Sql> SELECT table_name from User_part_tables;
table_name
------------------------------
Ord_order
Ord_order_item
Ord_purchase_item
If there is a problem with the job running automatically, try calling the run process manually:
Sql> EXEC Dbms_job. RUN (27)
The PL/SQL process has completed successfully.
Sql> SELECT table_name, last_analyzed from User_tables;
TABLE_NAME last_analyzed
This article URL address: http://www.bianceng.cn/database/Oracle/201410/45382.htm
------------------------------ -------------------
Ord_order_check 2009-08-07 16:23:53
Ord_order_check_term 2009-08-07 16:23:54
Ord_order_item_no_foshan 2009-08-07 16:23:54
Ord_order_item_no_shude 2009-08-07 16:23:54
Ord_order_oos_history 2009-08-07 16:23:56
Ord_order_pay 2009-08-07 16:24:00
Ord_order_return 2009-08-07 16:29:14
Ord_order_total_foshan 2009-08-07 16:29:16
Ord_order_total_shude 2009-08-07 16:29:16
Ord_purchase 2009-08-07 16:29:23
Ord_purchase_item 2007-05-03 15:33:17
Ord_order_item 2007-05-03 15:30:25
Ord_order 2007-05-03 15:23:42
Ord_order_receive 2009-08-07 16:27:04
14 rows have been selected.
The problem remains, since there is a problem with the job call, try to execute the Dbms_stats package manually:
Sql> EXEC dbms_stats.gather_schema_stats (user, Cascade => true);
The PL/SQL process has completed successfully.
Sql> SELECT table_name, last_analyzed from User_tables;
TABLE_NAME last_analyzed
------------------------------ -------------------
Ord_order_check 2009-08-07 16:39:25
Ord_order_check_term 2009-08-07 16:39:26
Ord_order_item_no_foshan 2009-08-07 16:39:26
Ord_order_item_no_shude 2009-08-07 16:39:26
Ord_order_oos_history 2009-08-07 16:39:28
Ord_order_pay 2009-08-07 16:39:33