没有合适的资源?快使用搜索试试~ 我知道了~
oracle 自动收集统计信息 测试
资源详情
资源评论
资源推荐
一、测试环境
数据版本 归档模式
11.2.0.3 否
二、开始测试
1、验证:createtable数据库的自动收集任务会被收集统计信息。
1 SQL>createtablet1(idnumber,namevarchar2(10));
2 Tablecreated.
3 ‐‐DBA_TAB_MODIFICATIONS未收录信息
4 SQL>selectTABLE_OWNER,TABLE_NAME,INSERTS,UPDATES,DELETES,to_char(TIMEST
AMP,'yyyy‐mm‐ddhh24:mi:ss'),TRUNCATED,DROP_SEGMENTSfromDBA_TAB_MODIFICAT
IONSwheretable_name='T1';
5 norowsselected
6 ‐‐还未收集统计信息
7 SQL>selectowner,table_name,object_type,stale_stats,last_analyzedfromd
ba_tab_statisticswheretable_name='T1';
8 OWNERTABLE_NAMEOBJECT_TYPESTALAST_ANALYZED
9 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
10 SYST1TABLE
11 ‐‐还未收集统计信息
12 SQL>selectTABLE_NAME,NUM_ROWS,LAST_ANALYZEDfromuser_tableswhereTAB
LE_NAME='T1';
13 TABLE_NAMENUM_ROWSLAST_ANALYZED
14 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
15 T1
16 ‐‐手动执行自动收集任务:
17 SQL>execdbms_stats.gather_database_stats_job_proc();
18 PL/SQLproceduresuccessfullycompleted.
19 ‐‐结果可以看到,新表已经被收集
20 SQL>selectTABLE_NAME,NUM_ROWS,LAST_ANALYZEDfromuser_tableswhereTAB
LE_NAME='T1';
21 TABLE_NAMENUM_ROWSLAST_ANALYZED
22 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
23 T1011‐JUN‐22
24 SQL>selectowner,table_name,object_type,stale_stats,last_analyzedfrom
dba_tab_statisticswheretable_name='T1';
25 OWNERTABLE_NAMEOBJECT_TYPESTALAST_ANALYZED
26 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
27 SYST1TABLENO11‐JUN‐22
28
2、验证:truncate表操作,数据库的自动收集任务会被收集统计信息。
1 SQL>truncatetablet1;
2 Tabletruncated.
3 SQL>selectTABLE_NAME,NUM_ROWS,LAST_ANALYZEDfromuser_tableswhereTABL
E_NAME='T1';
4 TABLE_NAMENUM_ROWSLAST_ANALYZED
5 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
6 T1011‐JUN‐22
7 ‐‐表的统计信息未标记过期。stale_stats为NO
8 SQL>selectowner,table_name,object_type,stale_stats,last_analyzedfromd
ba_tab_statisticswheretable_name='T1';
9 OWNERTABLE_NAMEOBJECT_TYPESTALAST_ANALYZED
10 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
11 SYST1TABLENO11‐JUN‐22
12 ‐‐刷新DBA_TAB_MODIFICATIONS里的信息
13 SQL>execdbms_stats.FLUSH_DATABASE_MONITORING_INFO;
14 PL/SQLproceduresuccessfullycompleted.
15 ‐‐DBA_TAB_MODIFICATIONS的TRUNCATED(TRU)为YES
16 SQL>selectTABLE_OWNER,TABLE_NAME,to_char(TIMESTAMP,'yyyy‐mm‐ddhh24:m
i:ss'),TRUNCATEDfromDBA_TAB_MODIFICATIONSwheretable_name='T1';
17
18 TABLE_OWNERTABLE_NAMETO_CHAR(TIMESTAMP,'TRU
19 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐
20 SYST12022‐06‐1113:26:15YES
21 ‐‐表的统计信息标记过期。stale_stats为YES
22 SQL>selectowner,table_name,stale_stats,to_char(last_analyzed,'yyyy‐mm‐
ddhh24:mi:ss')last_analyzedfromdba_tab_statisticswhere
table_name='T1';
23 OWNERTABLE_NAMESTALAST_ANALYZED
24 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐
25 SYST1YES2022‐06‐1113:23:51
26 ‐‐手动执行自动收集任务:
27 SQL>execdbms_stats.gather_database_stats_job_proc();
28 PL/SQLproceduresuccessfullycompleted.
29 ‐‐表的统计信息标记已更新为NO,LAST_ANALYZED时间已经更新,表未被收集了
30 SQL>selectowner,table_name,stale_stats,to_char(last_analyzed,'yyyy‐mm‐
ddhh24:mi:ss')last_analyzedfromdba_tab_statisticswhere
table_name='T1';
table_name='T1';
31
32 OWNERTABLE_NAMESTALAST_ANALYZED
33 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐
34 SYST1NO2022‐06‐1113:36:00
35
3、验证:truncate分区操作,数据库的自动收集任务会被收集统计信息。
1 ‐‐创建分区表:t_part
2 SQL>createtablet_part(idnumber,namevarchar2(10),create_timeTIMESTA
MP(6))
3 PARTITIONBYRANGE(create_time)INTERVAL(numtoyminterval(1,'month'))
4 (PARTITIONpart2022_05VALUESLESSTHAN(TO_DATE('20220601','yyyymmdd')),
5 PARTITIONpart2022_06VALUESLESSTHAN(TO_DATE('20220701','yyyymmdd')));
6 Tablecreated.
7 ‐‐创建主建GLOBAL分区索引
8 SQL>ALTERTABLEt_partADDCONSTRAINTpk_t_part_idPRIMARYKEY(id)
9 USINGINDEX(CREATEUNIQUEINDEXpk_t_part_idONt_part(id)
10 GLOBALPARTITIONBYHASH(id)PARTITIONS2);
11 Tablealtered.
12 ‐‐每个分区插入数据:
13 SQL>insertintot_partvalues(1,'a',to_date('2022‐05‐11','yyyy‐mm‐
dd'));
14 1rowcreated.
15 SQL>insertintot_partvalues(2,'a',to_date('2022‐06‐11','yyyy‐mm‐
dd'));
16 1rowcreated.
17 SQL>commit;
18 Commitcomplete.
19 ‐‐查看统计信息:未收集
20 SQL>selectowner,table_name,stale_stats,to_char(last_analyzed,'yyyy‐mm‐
ddhh24:mi:ss')last_analyzedfromdba_tab_statisticswheretable_name='T_P
ART';
21 OWNERTABLE_NAMESTALAST_ANALYZED
22 ‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
‐‐‐‐‐‐‐‐‐‐‐‐‐
23 SYST_PART
24 SYST_PART
25 SYST_PART
26 ‐‐手动执行自动收集任务:
27 SQL>execdbms_stats.gather_database_stats_job_proc();
28 PL/SQLproceduresuccessfullycompleted.
剩余13页未读,继续阅读
two_rain
- 粉丝: 148
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0