Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Узнать размер на диске для Табл. Области, Таблицы  [new]
Жу
Member

Откуда:
Сообщений: 43
Здравтвуйте, подскажеите люди:
1) Как узнать с помощью SQL размер табличной области на диске
2) А как можно узнать размер таблицы на диске или относительный от размера табличной области.
Спас.
23 апр 03, 15:28    [182216]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Почитать доку по словарю данных, потом начать давать запросы типа
select xxx from dba_tablespaces where yyyy;
select xxx from dba_tables where yyyy;
select xxx from dba_segments where yyyy;
select xxx from dba_extents where yyyy;

Можно наоборот - сначала написать подобные запросы, потом посмотреть в документации описание столбцов таблиц словаря. Заодно почитать и concepts, чтобы понять структуры хранения базы данных.
23 апр 03, 15:37    [182227]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
ora600
Member

Откуда: Москва
Сообщений: 289
к пункту 2
пакет DBMS_SPACE
23 апр 03, 15:42    [182230]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6876

1.
select
t.name tbs,
((sum(f.blocks)*t.blocksize)/1024)/1024 Mbytes
from
sys.ts$ t,
sys.file$ f
where
f.ts#=t.ts#
group by
t.name, t.blocksize

2.
select
sum(de.bytes)
from
dba_extents de
where
de.owner=&owner
and de.segment_name=&segment_name

23 апр 03, 15:43    [182231]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
to Scott Tiger

В отношении

select xxx from dba_tablespaces where yyyy;
select xxx from dba_tables where yyyy;
select xxx from dba_segments where yyyy;
select xxx from dba_extents where yyyy;


понятно, а вот

sys.ts$
sys.file$

что за звери? Уж не base tables ли словаря данных?
23 апр 03, 17:09    [182350]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6876
Таблицы словаря. См. тж. select table_name from user_tables под sys-ом.
На самом деле этот запрос можно переписать и с использованием стандартных вьюх, только меня ломало
23 апр 03, 17:17    [182368]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
А как узнать, на основе каких таблиц построено вью? describe давет только имя и тип, а как узнать еще и таблицу?

SQL> describe dba_tablespaces;

Name Null? Type
----------------------------------------- -------- ----------------


TABLESPACE_NAME NOT NULL VARCHAR2(30)
BLOCK_SIZE NOT NULL NUMBER
INITIAL_EXTENT NUMBER
NEXT_EXTENT NUMBER
MIN_EXTENTS NOT NULL NUMBER
MAX_EXTENTS NUMBER
PCT_INCREASE NUMBER
MIN_EXTLEN NUMBER
STATUS VARCHAR2(9)
CONTENTS VARCHAR2(9)
LOGGING VARCHAR2(9)
EXTENT_MANAGEMENT VARCHAR2(10)
ALLOCATION_TYPE VARCHAR2(9)
PLUGGED_IN VARCHAR2(3)
SEGMENT_SPACE_MANAGEMENT VARCHAR2(6)
23 апр 03, 17:23    [182384]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6876
Сделай из него select *, и посмотри план - увидишь таблицы/вьюхи, на которых он построен. Ну или правильный способ - посмотри text в dba_views.
23 апр 03, 17:29    [182388]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
_kozyr
Member

Откуда:
Сообщений: 34
2 Violina. Можно ещё так.

SQL> l

1 select name, referenced_type, referenced_name
2 from user_dependencies
3* where name = 'DBA_TABLESPACES'
SQL> /

NAME REFERENCED_TYPE REFERENCED_NAME
------------------------- ----------------- ------------------------------

DBA_TABLESPACES TABLE TS$
DBA_TABLESPACES PACKAGE STANDARD
23 апр 03, 17:35    [182399]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
сделала, выдает такую вот фигню. В чем проблема?

SQL> select text from dba_views where view_name='DBA_TABLESPACES';


TEXT
---------------------------------------------------------------------


select ts.name, ts.blocksize, ts.blocksize * ts.dflinit,
decode(bitand


SQL>
23 апр 03, 17:38    [182407]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Scott Tiger
Member

Откуда: вмваре
Сообщений: 6876
В плюсе см. set long.
23 апр 03, 17:43    [182418]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
Еще можно посмотреть catalog.sql - там все создания стандартных вьюшек словаря данных кроме v$.

А создание таблиц словаря - sql.bsq.
24 апр 03, 09:28    [182852]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Денис Геннадьевич
Member

Откуда: Россия, Нижний Новгород
Сообщений: 45
А кто-нибудь знает?....
Реально ли подсчитать занимаемое пространство данными таблицы за определенный период?.

Создать новую таблицу и вставить в неё данные не могу, т.к. в исходной таблице 1.5 миллиарда строк. А за период размер надо посчитать.....
27 фев 09, 10:14    [6868102]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18482
Ну, в принципе, есть функция VSIZE...
Складываешь размер всех полей, добавляешь накладные расходы, учитываешь среднюю занятость блока и т.д.
Может проще взять средний размер одной строки и умножить на количество строк за период
27 фев 09, 10:18    [6868128]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Gabit
Member

Откуда: Алматы
Сообщений: 501
Размер не партиционированной таблицы вычисляю так:
SELECT   owner, segment_name, segment_type,tablespace_name, 
         ROUND(SUM (BYTES) /  1024 / 1024) "SIZE (MB)",
         SUM (blocks) blocks, COUNT (*) extents
    FROM dba_extents
   WHERE owner = 'SCOTT' AND segment_name = 'EMPLOYEES' 
         AND segment_type = ‘TABLEGROUP BY owner, segment_name, segment_type, tablespace_name


А для партиционированных таблиц этот метод кажется не подходит. Так как партиции за ранее создаются.
Помогите пожалуйста с запросом для определения размера партиционированных таблиц.
6 дек 12, 18:47    [13590217]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
88588
Guest
Gabit
А для партиционированных таблиц этот метод кажется не подходит. Так как партиции за ранее создаются.
Помогите пожалуйста с запросом для определения размера партиционированных таблиц.


Зачем читать из dba_extents и делать ненужные группировки? Проще же из dba_segments.
А так все то же самое, только тип сегмента тейбл партишион и тейбл сабпартишион
6 дек 12, 23:10    [13591033]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Gabit
Member

Откуда: Алматы
Сообщений: 501
Хорошо,
А в DBA_SEGMENTS для партиционированных таблиц значение BYTES это реальный размер ?
7 дек 12, 06:58    [13591494]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Добрый Э - Эх
Guest
реальный.
7 дек 12, 07:18    [13591509]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Gabit
Member

Откуда: Алматы
Сообщений: 501
Там вижу что по пустым партициям тоже есть значения 10 Мб.
7 дек 12, 08:03    [13591555]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Добрый Э - Эх
Guest
Gabit,

а пустые партиции - они только в плане отсутствия строк пустые, если что. Но место под их хранение на диске всё одно выделяется (параметры влияющие на размер "пустой" секции - initial_extent, min_extents из представлений [user|all|dba]_tables, [user|all|dba]_tab_partitions)
7 дек 12, 08:08    [13591564]     Ответить | Цитировать Сообщить модератору
 Re: Узнать размер на диске для Табл. Области, Таблицы  [new]
Gabit
Member

Откуда: Алматы
Сообщений: 501
Ок,
Спасибо Всем !
7 дек 12, 08:35    [13591629]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить