Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / узнать размер таблицы? / 25 сообщений из 27, страница 1 из 2
20.05.2009, 17:03:00
    #35997171
Fedortsov A.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Добрый деlty!Ora10g Winserv 2003
как просомотреть объем определенной таблицы?

Заранее благодарен
...
Рейтинг: 0 / 0
20.05.2009, 17:04:56
    #35997179
SysOper
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Fedortsov A.,

Dba_Segments

не стоит благодарности
...
Рейтинг: 0 / 0
20.05.2009, 17:21:51
    #35997250
skelet
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Fedortsov A.,

Код: plaintext
1.
2.
3.
select sum(bytes)/ 1024 / 1024  mb from user_segments
where segment_name = 'имя'
group by segment_name
...
Рейтинг: 0 / 0
20.05.2009, 18:00:18
    #35997415
Brass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Fedortsov A.Добрый деlty!Ora10g Winserv 2003
как просомотреть объем определенной таблицы?

Заранее благодарен
очень удобная процедурка
помимо общего обьема таблицы показывает ещё и количество свободного места в блоках
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
variable unf number; 
variable unfb number; 
variable fs1 number; 
variable fs1b number; 
variable fs2 number; 
variable fs2b number; 
variable fs3 number; 
variable fs3b number; 
variable fs4 number; 
variable fs4b number; 
variable full number; 
variable fullb number; 

begin 
dbms_space.space_usage('OWNER','TABLE_NAME', 
                        'TABLE', 
                        :unf, :unfb, 
                        :fs1, :fs1b, 
                        :fs2, :fs2b, 
                        :fs3, :fs3b, 
                        :fs4, :fs4b, 
                        :full, :fullb); 
end; 
/ 

где
unformatted_blocks
Total number of blocks that are unformatted

unformatted bytes
Total number of bytes that are unformatted

fs1_blocks
Number of blocks that has at least 0 to 25% free space

fs1_bytes
Number of bytes that has at least 0 to 25% free space

fs2_blocks
Number of blocks that has at least 25 to 50% free space

fs2_bytes
Number of bytes that has at least 25 to 50% free space

fs3_blocks
Number of blocks that has at least 50 to 75% free space

fs3_bytes
Number of bytes that has at least 50 to 75% free space

fs4_blocks
Number of blocks that has at least 75 to 100% free space

fs4_bytes
Number of bytes that has at least 75 to 100% free space

ful1_blocks
Total number of blocks that are full in the segment

full_bytes
Total number of bytes that are full in the segment
...
Рейтинг: 0 / 0
20.05.2009, 20:03:35
    #35997603
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Brass,


не очень очень удобная процедурка :)

Код: plaintext
1.
2.
3.
4.
5.
..

ошибка в строке  1 :
ORA- 14107 : Спецификация секции необходима для секционированного объекта
ORA- 06512 : на  "SYS.DBMS_SPACE", line  190 
ORA- 06512 : на  line  2 
...
Рейтинг: 0 / 0
20.05.2009, 20:12:50
    #35997617
Serguei
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Fedortsov A.
как просомотреть объем определенной таблицы?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select t.owner,
       t.segment_name,
       round((sum(t.bytes) / ( 1024  *  1024 )),  2 ) Mbytes
  from DBA_EXTENTS t
 where t.owner in ('Username1', 'Username2')
   and t.segment_type in
       ('TABLE', 'TABLE PARTITION', 'INDEX', 'INDEX PARTITION')
 group by t.owner, t.segment_name
 order by Mbytes desc
...
Рейтинг: 0 / 0
20.05.2009, 22:23:37
    #35997765
Brass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
orawishBrass,


не очень очень удобная процедурка :)

Код: plaintext
1.
2.
3.
4.
5.
..

ошибка в строке  1 :
ORA- 14107 : Спецификация секции необходима для секционированного объекта
ORA- 06512 : на  "SYS.DBMS_SPACE", line  190 
ORA- 06512 : на  line  2 

документацию по пакету посмотри
там и по партиционированным обьектам вроде можно информацию получить
завтра точнее отпишу если надо
...
Рейтинг: 0 / 0
20.05.2009, 22:34:34
    #35997781
Brass
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
BrassorawishBrass,


не очень очень удобная процедурка :)

Код: plaintext
1.
2.
3.
4.
5.
..

ошибка в строке  1 :
ORA- 14107 : Спецификация секции необходима для секционированного объекта
ORA- 06512 : на  "SYS.DBMS_SPACE", line  190 
ORA- 06512 : на  line  2 

документацию по пакету посмотри
там и по партиционированным обьектам вроде можно информацию получить
завтра точнее отпишу если надо
даже сегодня
точно, есть соответствующий параметр

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Table 98-11 SPACE_USAGE Procedure Parameters
Parameter 	Description
segment_owner 	Schema name of the segment to be analyzed
segment_name 	Name of the segment to be analyzed
 partition_name 	Partition name of the segment to be analyzed 
segment_type 	Type of the segment to be analyzed (TABLE, INDEX, or CLUSTER)
unformatted_blocks 	Total number of blocks that are unformatted
unformatted bytes 	Total number of bytes that are unformatted
fs1_blocks 	Number of blocks that has at least 0 to 25% free space
fs1_bytes 	Number of bytes that has at least 0 to 25% free space
fs2_blocks 	Number of blocks that has at least 25 to 50% free space
fs2_bytes 	Number of bytes that has at least 25 to 50% free space
fs3_blocks 	Number of blocks that has at least 50 to 75% free space
fs3_bytes 	Number of bytes that has at least 50 to 75% free space
fs4_blocks 	Number of blocks that has at least 75 to 100% free space
fs4_bytes 	Number of bytes that has at least 75 to 100% free space
ful1_blocks 	Total number of blocks that are full in the segment
full_bytes 	Total number of bytes that are full in the segment
...
Рейтинг: 0 / 0
20.05.2009, 22:53:34
    #35997800
Деев И.
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Еще v$segstat содержит данные о выделенном и занятом пространстве.
...
Рейтинг: 0 / 0
21.05.2009, 16:26:13
    #35999711
orawish
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Brass,

дык я не сомневался, что для партиций там есть параметры.
просто, если код публикуете (где буков много), то, имхо,
он мог бы быть и более общим
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
18.06.2013, 23:15:02
    #38302399
Evgeny_1987
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Fedortsov A., я бы предложил более корректный вариант с подсчетом сегментов данных, индексов и blob-полей таблицы:

http://konurbaev-e.blogspot.ru/2013/06/oracle-database-how-to-calculate-actual.html
...
Рейтинг: 0 / 0
19.06.2013, 00:04:16
    #38302431
ORA__SQL
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Evgeny_1987Fedortsov A., я бы предложил более корректный вариант с подсчетом сегментов данных, индексов и blob-полей таблицы:
http://konurbaev-e.blogspot.ru/2013/06/oracle-database-how-to-calculate-actual.html Адский блог
...
Рейтинг: 0 / 0
19.06.2013, 02:23:55
    #38302490
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Evgeny_1987,

имхо,
1. достаточно одного селекта
2. не стоит делать upper, лучше подавайте на вход сразу верное название
3. мешанина ALL_ c DBA_, да еще и их джойны без учета owner'a
4. не учитывает lob index'ы и вложенные таблицы
5. dba_segments достаточно "тяжелая" вьюха, если уж туда идти, то хотя бы один раз
...
Рейтинг: 0 / 0
19.06.2013, 02:24:33
    #38302491
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
это только то, что сразу в глаза бросилось
...
Рейтинг: 0 / 0
19.06.2013, 08:49:56
    #38302588
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
xtenderэто только то, что сразу в глаза бросилосьПризнаки стилистического говнокода изобилуют, но уже на втором плане после - может посчитать сегменты другой таблицы, свои сегменты несколько раз или не посчитать...
...
Рейтинг: 0 / 0
19.06.2013, 09:20:50
    #38302615
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
-2-может посчитать сегменты другой таблицы, свои сегменты несколько раз или не посчитать...ага, это про овнера
...
Рейтинг: 0 / 0
19.06.2013, 20:05:07
    #38303905
Evgeny_1987
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
xtender,

автор1. достаточно одного селекта

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

автор2. не стоит делать upper, лучше подавайте на вход сразу верное название
3. мешанина ALL_ c DBA_, да еще и их джойны без учета owner'a

ALL на DBA заменили.

А в join-ах было условие:
and
t.owner = upper(pOwner);

автор4. не учитывает lob index'ы и вложенные таблицы

lob-сегменты и lob-индексы учитываются этим селектом:

select
sum(s.bytes) into val
from
dba_lobs t
inner join
dba_segments s on t.segment_name = s.segment_name
where
t.table_name = upper(pNazvanie)
and
t.owner = upper(pOwner);

автор5. dba_segments достаточно "тяжелая" вьюха, если уж туда идти, то хотя бы один раз

Опять таки, скорость для разовых запусков значения не имела.
Данная функция выполняется 2 секунды, более чем достаточно.
...
Рейтинг: 0 / 0
19.06.2013, 21:24:22
    #38303947
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Печалька... попытка #2:
1. Тем более, зачем функцию создавать для разового запуска
2. Размер "ТаБлИцы" не посчитает
3. Это не условие джойна
4. Лобиндексы оттуда не получить
...
Рейтинг: 0 / 0
19.06.2013, 23:59:01
    #38304022
неймспейс
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Evgeny_1987Опять таки, скорость для разовых запусков ...да похеp на скорость, могу привести простейший случай простой таблицы с индексом, для которых объем посчитается больше в несколько раз
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
24.06.2016, 11:54:23
    #39261664
Pit_T
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Fedortsov A.,

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

COLUMN TABLE_NAME FORMAT A32
COLUMN OBJECT_NAME FORMAT A32
COLUMN OWNER FORMAT A10

SELECT
owner,
table_name,
TRUNC(sum(bytes)/1024/1024) Meg,
ROUND( ratio_to_report( sum(bytes) ) over () * 100) Percent
FROM
(SELECT segment_name table_name, owner, bytes
FROM dba_segments
WHERE segment_type IN ('TABLE', 'TABLE PARTITION', 'TABLE SUBPARTITION')
UNION ALL
SELECT i.table_name, i.owner, s.bytes
FROM dba_indexes i, dba_segments s
WHERE s.segment_name = i.index_name
AND s.owner = i.owner
AND s.segment_type IN ('INDEX', 'INDEX PARTITION', 'INDEX SUBPARTITION')
UNION ALL
SELECT l.table_name, l.owner, s.bytes
FROM dba_lobs l, dba_segments s
WHERE s.segment_name = l.segment_name
AND s.owner = l.owner
AND s.segment_type IN ('LOBSEGMENT', 'LOB PARTITION')
UNION ALL
SELECT l.table_name, l.owner, s.bytes
FROM dba_lobs l, dba_segments s
WHERE s.segment_name = l.index_name
AND s.owner = l.owner
AND s.segment_type = 'LOBINDEX')
WHERE owner in UPPER('&owner')
GROUP BY table_name, owner
HAVING SUM(bytes)/1024/1024 > 10 /* Ignore really small tables */
ORDER BY SUM(bytes) desc
;
...
Рейтинг: 0 / 0
24.06.2016, 11:57:49
    #39261670
узнать размер таблицы?
Pit_T,

спасибо, что не оставил тему без ответа. Мы тут тебя три года ждали, спаситель ты наш
...
Рейтинг: 0 / 0
24.06.2016, 13:40:17
    #39261783
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Pit_TВот селектне все типы сегментов учтены и из приведенных не всегда корректно приведены к имени таблицы. опять частичное решение.
...
Рейтинг: 0 / 0
24.06.2016, 16:18:02
    #39261941
samatom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
-2-Pit_TВот селектне все типы сегментов учтены и из приведенных не всегда корректно приведены к имени таблицы. опять частичное решение.Стесняюсь спросить, что еще необходимо учесть? Заранее спасибо.
...
Рейтинг: 0 / 0
24.06.2016, 16:33:51
    #39261962
samatom
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
Отвечу сам - nested table, claster, lob subpartition
...
Рейтинг: 0 / 0
24.06.2016, 16:34:56
    #39261965
Jonhson
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
узнать размер таблицы?
samatomОтвечу сам - nested table, claster , lob subpartition

WTF?
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / узнать размер таблицы? / 25 сообщений из 27, страница 1 из 2
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]