--Процедура ищет никогда неанализировавшиеся таблицы и анализирует их.
--Внимательно !!! Делается ПОЛНЫЙ анализ конкретной таблицы!
--Внимательно !!! Анализируются ВСЕ найденные таблицы!

DECLARE
 v_cursor number;
  CURSOR tbl_cur IS
    SELECT distinct(table_name) table_name FROM ALL_TAB_COLUMNS
    WHERE owner='UBC' AND last_analyzed IS null AND Table_name NOT IN
         ( SELECT view_name FROM all_views WHERE owner='UBC')
BEGIN
 FOR tbl_row IN tbl_cur LOOP
  BEGIN
  DBMS_DDL.ANALYZE_OBJECT('TABLE','UBC',tbl_row.table_name,'COMPUTE',null,null);
  DBMS_OUTPUT.PUT_LINE(tbl_row.table_name);
  exception when others then
    DBMS_OUTPUT.PUT_LINE('ups..except on '||tbl_row.table_name);
  END;
 END LOOP;
END;


Просто запрос, который возвращает неанализированные таблицы:

SELECT owner,table_name
  FROM all_tables
 WHERE owner<>'SYS' AND owner<>'SYSTEM' AND owner<>'TOAD' AND num_rows IS null
 ORDER BY owner,table_name

Хостинг от uCoz