Как узнать размер таблицы в oracle
Перейти к содержимому

Как узнать размер таблицы в oracle

  • автор:

Как определить размер таблиц в Oracle?

Сегодня мы покажем, как определить размер таблиц в Oracle. В любой базе данных, в том числе и в базах данных Oracle, таблицы являются основными инструментами для сохранения информации. Удобство таблиц неоспоримо: они состоят из столбцов и строк, что обеспечивает удобное чтение располагаемой информации. Однако любая таблица может быть ограничена в размерах, поэтому иногда важно понимать размер таблицы, чтобы ориентироваться на вероятный объем сохраненной информации.

Не зная размер таблицы, может сложиться такая ситуация, что приложение, которое использует ее для записи, перестает нормально функционировать, потому что просто не может ничего записать. С базами Oracle — это довольно частая ситуация, особенно когда используется бесплатная версия этой базы данных. А в бесплатной версии размер таблиц ограничен лицензионным соглашением, а это значит, что рано или поздно, но все равно можно « у переться в потолок».

Как определить размер таблицы Oracle?

  • с таблицами нужно работать с правами администратора;
  • при вычислении размера таблиц нужно использовать пользователя, под которым работает «демон» Oracle;
  • в самом скрипте нужно обязательно указывать владельца таблицы.

Заключение

Узнать размер базы данных Oracle непросто, но возможно. То есть специальной какой-то кнопки или функции нет, поэтому приходится пользоваться большими массивными скриптами. Мы представили 2 скрипта на обозрение. Если по каким-то причинам они вам не подходят, тогда можно поискать в сети другие. На специализированных форумах администраторы баз данных Oracle делятся такими скриптами.

Мы будем очень благодарны

если под понравившемся материалом Вы нажмёте одну из кнопок социальных сетей и поделитесь с друзьями.

Главная

SELECT file_name, CEIL (blocks * t.block_size / 1024 / 1024) current_mb,
CEIL ((NVL (hwm, 1) * t.block_size) / 1024 / 1024) smallest_mb
FROM dba_data_files a,
dba_tablespaces t,
(SELECT file_id, MAX (block_id + blocks — 1) hwm
FROM dba_extents
GROUP BY file_id) b
WHERE t.tablespace_name = a.tablespace_name
AND a.file_id = b.file_id(+);

ALTER DATABASE DATAFILE ‘/app/oracle/db/product/11.2.0/dbhome_1/dbs/poolData01.dbf’ RESIZE 3000M;

Как в Oracle БД измерить размер/объем данных в выборке/селекте

При селекте в таблице в БД Oracle выводятся различные столбцы с разными типами данных, в основном varchar2, number,date,rowid. Как правильно установить размер в Мб определенной выборки?

Отслеживать
задан 28 дек 2022 в 19:01
Под «размером» имеется ввиду кол-во выводимых элементов?
28 дек 2022 в 19:16
Нет, объем в Мб данных, то есть сколько весит выборка
28 дек 2022 в 19:30

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Не уверен что точно правильно понял вопрос. Тогда ответ можно разделить на два, например на вот таких:

  • «сколько трафика затрачено на заполнение грида на форме» (или просто выполнение запроса и fetch до последней строки в любом клиенте, что в SQL-Plus, что в любой графической IDE вроде SQL Developer и прочих) — типа 100 строк на экране появилось после нажатия на кнопку на форме — пришло (по сети) 5 МБ например. Это можно вычислить через дельту из предствления V$SESSTAT для анализируемой сессии, замеряя значения для метрики «bytes sent via SQL*Net to client». Запоминаем текущее значение, жмём кнопку на форме / как-то иначе выполняем запрос, форма заполняется / результат появляется на экране — снова берём значение из V$SESSTAT, и из второго вычитаем первое (потому что вьюшка эта кумулятивная, суть накапливает значения метрик). Вот и всё — результат будет в байтах.
  • Вторая версия — «сколько занимает информация на экране», тогда для всех полей выполняем функцию LENGTH(), суммируем, ну и умножаем на количество строк. С идеей что каждый символ или цифра на экране — это один байт (или 2-4 байта, если всякие Unicode-кракозябры)

P.S. Тут скорее интересен вопрос — зачем может быть нужно знать то что Вы спрашиваете 🙂

Отслеживать
ответ дан 12 янв 2023 в 16:27
96 2 2 бронзовых знака

  • база-данных
  • oracle
  • select
    Важное на Мете
Похожие

Подписаться на ленту

Лента вопроса

Для подписки на ленту скопируйте и вставьте эту ссылку в вашу программу для чтения RSS.

Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.26.3951

Определение размера индекса и таблицы, BLOB поля в ORACLE

Приложенные скрипты помогут определить физический размер отдельного индекса, отдельной таблицы, таблицы и всех её индексов.

Узнаем размер индекса в ORACLE.

Узнаем размер таблицы в ORACLE.

Определяем размер таблицы и всех ее индексов Oracle

Определение размера BLOD поля

Как узнать размер секционированной таблицы с lob-полями

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

Размер таблиц в указанной схеме с учет LOB полей

Выводит размер таблиц, индексов и кол-во партиций по всем схемам

Выводит таблицы размер, которых больше одного 1 Гб. Это условие в запросе можно заменить на свое.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *