Таблицы в Oracle. Количество записей, размер таблицы

--  ****************************************************************
--  выводим количество записей по таблицам 
--  ****************************************************************
--  Требуется выполнить сначала скрипт с Set, после чего отдельно выполнить Declare 

Set serveroutput on format wraped;

Declare
  Cou Integer;
Begin
  For Rec in (select a.Table_Name 
              from all_tables a
              where (a.OWNER = '<Имя_схемы>')
              )
  loop
    Execute immediate('Select count(*) from '||Rec.Table_name)
    Into Cou;
    -- *************************************
    dbms_output.put_line('<Имя_схемы>'||Rec.Table_Name||';'||Cou);
  End Loop;
End;

Для того чтобы узнать размер таблицы в БД, требуется выполнить скрипт:

select segment_name table_name, 
       ceil(sum(bytes) / 1024) table_size
  from dba_segments
 where owner = '<Имя_схемы>'
       and segment_type = 'TABLE'
       and segment_name = '<Имя_таблицы>'
 group by segment_name;

_______________
ссылки:

Комментарии

  1. Навіщо так складно визначати кількість записів у таблицях? У великих таблицях можна не дочекатися підрахунку. Таблиця all_tables у полі NUM_ROWS містить готове значення.

    ОтветитьУдалить

Отправить комментарий

Популярные сообщения из этого блога

Linux (РедОС). Сброс пароля

TRUNCATE / DELETE / DROP или как очистить таблицу

КБК. КВФО - Код вида финансового обеспечения (деятельности)

SQL Error [53200]: ОШИБКА: нехватка разделяемой памяти Подсказка: Возможно, следует увеличить параметр max_locks_per_transaction

РедОС. Подключение к сетевой папке