来源:蜘蛛抓取(WebSpider)
时间:2015-01-30 08:52
标签:
oracle索引的使用
ORACLE分析表和索引的脚本analyze日10:45
analyze sql set serv..
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
ORACLE分析表和索引的脚本analyze
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口定时执行存储过程对库表及索引进行分析
参考了一下别人的代码又补充了一下写了一个过程。 分析某一用户下面的表及索引。 运行完毕后然后设置job即可。 create or replace procedure DBA_ANAYZE_SCHEMA(v_USERNAME VARCHAR2) AS v_per number(3) DEFAULT 100; v_start number := dbms_utility.get_ --v_end begin /********************* 该存储过程主要是对表及索引进行分析, 对于包含有子分区sub-partition的表需要注意一下granularity参数。具体参考: -- granularity - the granularity of statistics to collect (only pertinent -- if the table is partitioned) -- 'DEFAULT' - gather global- and partition-level statistics -- 'SUBPARTITION' - gather subpartition-level statistics -- 'PARTITION' - gather partition-level statistics -- 'GLOBAL' - gather global statistics -- 'ALL' - gather all (subpartition, partition, and global) statistics *******************************/ for rec in (select segment_name,segment_type,ceil(sum(bytes)/) segment_size from user_segments where SEGMENT_NAME NOT LIKE 'TMP_%' group by segment_name,segment_type) loop CASE WHEN rec.segment_type = 'INDEX' THEN case when rec.segment_size &=100 then v_per := 100; when rec.segment_size &=300 then v_per := 50; else v_per := 20; begin --delete old sch DBMS_STATS.delete_index_stats(ownname => upper(v_USERNAME), indname => rec.segment_name); exception when others then begin --analyze inde dbms_stats.gather_index_stats(ownname=>upper(v_USERNAME), --自己改一下 INDNAME=>rec.segment_name, estimate_percent =>v_per, degree => 2 ); exception when others then --dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s'); v_start := dbms_utility.get_ WHEN rec.segment_type = 'TABLE' then -- case when rec.segment_size &=150 then v_per := 100; when rec.segment_size &=500 then v_per := 50; else v_per := 20; begin --delete table analyze statistics dbms_stats.delete_table_stats(ownname =>upper(v_USERNAME), tabname =>rec.segment_name); exception when others then begin --analyze tabl dbms_stats.gather_table_stats(OWNNAME=>upper(v_USERNAME), TABNAME=>rec.segment_name, ESTIMATE_PERCENT=>v_per, cascade => TRUE, granularity => 'ALL', degree => 2, METHOD_OPT=>'FOR ALL INDEXED COLUMNS'); exception when others then -- dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s'); v_start := dbms_utility.get_ WHEN rec.segment_type = 'TABLE PARTITION' then case when rec.segment_size &=150 then v_per := 100; when rec.segment_size &=500 then v_per := 50; else v_per := 20; begin --delete table analyze statistics dbms_stats.delete_table_stats(ownname =>upper(v_USERNAME), tabname =>rec.segment_name); exception when others then begin --analyze tabl dbms_stats.gather_table_stats(OWNNAME=>upper(v_USERNAME), TABNAME=>rec.segment_name, ESTIMATE_PERCENT=>v_per, cascade => TRUE, granularity => 'ALL', degree => DBMS_STATS.DEFAULT_DEGREE, METHOD_OPT=>'FOR ALL INDEXED COLUMNS'); exception when others then WHEN rec.segment_type = 'INDEX PARTITION' then case when rec.segment_size &=100 then v_per := 100; when rec.segment_size &=300 then v_per := 50; else v_per := 20; begin --delete old sch DBMS_STATS.delete_index_stats(ownname => upper(v_USERNAME), indname => rec.segment_name); exception when others then begin --analyze inde dbms_stats.gather_index_stats(ownname=>upper(v_USERNAME), --自己改一下 INDNAME=>rec.segment_name, estimate_percent =>v_per, degree =>dbms_stats.DEFAULT_DEGREE ); exception when others then -- dbms_output.put_line(rec.segment_name||' '||rec.segment_size||'m '||ceil((dbms_utility.get_time - v_start)/100)||'s'); v_start := dbms_utility.get_ /** WHEN rec.segment_type = 'LOBINDEX' then v_start := dbms_utility.get_ WHEN rec.segment_type = 'LOBSEGMENT' then v_start := dbms_utility.get_**/ END CASE;
顶一下(1) 踩一下(0)
热门标签:扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
深入理解Oracle索引(21):视图和小表是否应该加索引
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer-4.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口