Сен 022011
 

Если таблица секционирована, то её размер равен суммарному размеру всех сегментов её секций. Если при этом она содержит lob - поля, то к сумме размеров секций надо прибавить сумму размеров всех lob-сегментов, ассоциированных с этой таблицей.
Этот запрос сводит всё воедино:

SELECT 
ROUND(
	(
		(
		 SELECT SUM(s.bytes)
		 FROM dba_lobs d, dba_segments s
		 WHERE d.segment_name = s.segment_name
		 AND d.owner = 'CUBE'
		 AND d.table_name = 'PART_LOB_TABLE'
		)
		+
		(
		 SELECT SUM(d.bytes) 
		 FROM dba_segments d
		 WHERE d.owner = 'CUBE'
		 AND d.segment_name = 'PART_LOB_TABLE'
		)
	)/1024/1024/1024, 2) gb
FROM dual;

В результате получим размер всех данных в гигабайтах (без учёта индексов, само собой).

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre lang="" line="" escaped="" cssfile="">

(обязательно)

(обязательно)