Таблицы в 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;
_______________
ссылки:
Навіщо так складно визначати кількість записів у таблицях? У великих таблицях можна не дочекатися підрахунку. Таблиця all_tables у полі NUM_ROWS містить готове значення.
ОтветитьУдалить