Я хочу найти фактическое пространство, потребляемое индексами на таблице в оракуле 10g. Я не намерен включать пространство, зарезервированное оракулом для будущего использования. (Служебная нагрузка оракулом не должна учитываться.) Я хочу использовать использованные байты, а не выделенные байты.
Можете ли вы помочь мне идти вперед?
Кроме того, есть ли способ найти фактический размер длинного поля в таблице.
PS: vsize () и dbms_lob.getlength () не работают.
oracle
oracle-10g
уравнительный
источник
источник
Ответы:
покажет вам количество места, фактически потребляемое каждым индексом. Я не уверен, что именно эти издержки вы пытаетесь учесть, и как вы различаете «используемые» и «распределенные» в контексте индекса. Если вы хотите учесть свободное место в индексе, вы можете использовать процедуру DBMS_SPACE.SPACE_USAGE, чтобы определить, сколько частично пустых блоков в индексе.
источник
delete <<name of table>>
), в отличие от используемого размера, который будет варьироваться в зависимости от количества записей в индексе.SELECT idx.index_name, SUM(bytes) FROM user_segments seg, user_indexes idx WHERE idx.table_name = 'EMERGE_REPORTING_DETAIL' AND idx.index_name = seg.segment_name GROUP BY idx.index_name
Чтобы измерить (как я понимаю, ваше понимание) распределенный и использованный размер индекса, я бы, вероятно, использовал
dbms_space
Эта процедура измеряет выделенный и используемый размер индекса с именем * TQ84_SIZE_IX *. Для полноты картины я также добавил количество байтов, сообщаемое
user_segments
.Теперь эту процедуру можно увидеть в действии:
При наличии одной записи в индексе возвращаются следующие цифры:
Заполнение индекса ...
... и снова получаю цифры ...
... сообщает:
Затем, если индекс «опустошен»:
это показывает:
который демонстрирует, что выделенный размер не уменьшается, в то время как используемый размер уменьшается.
источник
Если кто-то приходит сюда в поисках способа найти размер длинного поля, ниже приведен способ сделать это. Я удалю этот ответ, если вопрос отделен.
Образец данных...
Функция для выполнения работы ... (Для производства это должно быть в упаковке)
Проверьте функцию ...
источник
Мне пришлось изменить ответ Рене Ниффенегера, чтобы сделать его более общим и более легким для просмотра использования пространства для всех индексов в схеме.
Думаю, я поделюсь измененным кодом здесь, на случай, если кто-то еще найдет его полезным
источник