Таблицы в 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 (РедОС). Сброс пароля

ТФФ 35.0. Полный перечень документов альбома ТФФ (Таблица 2)

ТФФ 34.0. Полный перечень документов альбома ТФФ (Таблица 2)

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

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