declare --更新所有列的统计信息
v_sql varchar(4000);
v_begtime VARCHAR2(200);
v_endtime varchar2(200);
CURSOR c1 IS SELECT
TAB.NAME AS TABLE_NAME ,
SYSCOL.NAME AS COLUMN_NAME,
SCH.NAME as sch_name
FROM
SYSOBJECTS AS TAB,
SYSOBJECTS AS SCH,
SYSCOLUMNS AS SYSCOL
WHERE
SCH.ID =TAB.SCHID
AND TAB.ID =SYSCOL.ID
--AND SCH.NAME = 'SYSDBA'
AND SYSCOL.TYPE$ NOT IN ('BLOB','CLOB','TEXT')
and TAB.NAME IN(select TABLE_NAME from ALL_TABLES WHERE TABLE_NAME = 'CHRONIC_LABEL_GRADE_DICT');
begin
for i in c1
loop
v_sql :='stat 100 on "'||i.sch_name||'"."'|| i.TABLE_NAME ||'"("' ||i.COLUMN_NAME ||'");';
--v_sql='stat 100 on SP_TS_BAKSET_REMOVE_BATCH(DEVICE_TYPE);';
print v_sql;
v_begtime := sysdate();
execute immediate v_sql;
v_endtime :=sysdate();
--insert into stat_history VALUES (v_begtime,v_endtime,v_sql,i.TABLE_NAME,i.COLUMN_NAME);
commit;
end loop;
end;
文章
阅读量
获赞
