Определение размера таблицы

Totos
Дата: 03.06.2006 12:31:54
Подскажите, пожадуйста ...

Из какого представления словаря данных я могу получить физический размер (в байтах, Кб, Мб) определенной таблицы.

P.S. Под рукой совсем нет подходящей литературы, кроме Internet.
dmidek
Дата: 03.06.2006 12:43:32
На диске лежит

select bytes from user_segments where segment_name = 'YOUR_TABLE';

В таблице лежит

select sum(vsize(col_a) + vsize(col_bb) + vsize ....) from your_table ;
в байтах

Разница между значениями приходится на overhead - информация о блоке
grexhide
Дата: 03.06.2006 12:48:31
dmidek


А индексы к таблице уже не относятся ? ;)
dmidek
Дата: 03.06.2006 12:52:35
grexhide
dmidek


А индексы к таблице уже не относятся ? ;)


Я ответил на вопрос из сабжа.
Если Вы считаете, что информация неполна, Вы можете ее дополнить. Я думаю, автор будет только благодарен.
Вадиман
Дата: 03.06.2006 13:06:18
grexhide
dmidek


А индексы к таблице уже не относятся ? ;)

разумеется, не относятся. Это совершенно отдельный объект базы данных. Нет?
stripe
Дата: 03.06.2006 13:22:36
Разница между значениями приходится на overhead - информация о блоке

а пустые блоки, которые находятся в сегментах?
grexhide
Дата: 03.06.2006 13:27:31
Вадиман
grexhide
dmidek


А индексы к таблице уже не относятся ? ;)

разумеется, не относятся. Это совершенно отдельный объект базы данных. Нет?


Примерно из той же оперы (разброда и шатания понятийного аппарата), что и размер сегмента и размер строки как сумма vsize (кстати, довольно бессмысленный подсчет).

Т.к. индекс не является отдельной самостоятельной логической структурой (и физической, кстати, тоже), то вполне разумно его также учитывать в подсчете размера физического пространства, занимаемого таблицей в целом, а не именно сегментом (-ами) таблицы.

А если взять еще и кластеризованные таблицы, или IOT таблицы, то вообще наступает полный разброд и шатания. Или связанные с таблицей, к примеру, материализованные представления или снапшоты - которые непосредственно к данной таблице уже и не совсем (целиком) относятся... (как пример отличия от).

P.S. Хотя - трудно сказать, что именно автору нужно. Тем более, странно выглядит его утверждение - есть интернет, но нет подходящей литературы. Собственно говоря - один только otn.oracle.com - литература на любой вкус и актуальную версию Oracle ;))
grexhide
Дата: 03.06.2006 13:29:40
stripe
Разница между значениями приходится на overhead - информация о блоке

а пустые блоки, которые находятся в сегментах?


А служебные блоки, не содержащие данные строк ?

А свободное пространство в блоке, не содержащее данных и не содержащее служебной информации о блоке ?

И т.д. и т.п. ;)
stripe
Дата: 03.06.2006 13:44:39
grexhide

И т.д. и т.п. ;)

Примерно из той же оперы (разброда и шатания понятийного аппарата), что и размер сегмента и размер строки как сумма vsize (кстати, довольно бессмысленный подсчет).


Смех смехом - а на размерах экспортного дампа это мало отразится.
Так что можно сделать таблицу с initial в кучу метров, записать туда одну строку и в дамп файле получить несколько Кб, а на диске это будет занимать мегабайты. Так что вариант с vsize - не такой уж и бессмысленный подсчёт.
Так что о каком именно размере таблицы спрашивали не совсем ясно.

А индексы вообще могут лежать в другом табличном пространстве на другом диске. Так что - учитывать их или не учитывать при подсчете размера таблицы дело сугубо личное и зависит от задачи.
имхо.
grexhide
Дата: 03.06.2006 13:51:30
stripe


В продолжение пятницы... Таблица в дампе это таблица базы данных или как ?
И как можно к ней получить доступ ?

--
И тут же, в опровержение себя - а внешние таблицы ? А.... в еще и в аспекте доступа к внешним таблицам в формате экпортных файлов Data Pump ? ;)))

С каждым годом требования к психологической устойчивости и терминологической однозначности в плане конкретизации вопросов и ответов по сереру Oracle - только возрастают... Что, впрочем, не может не радовать ;)