powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / размер таблицы (настоящий)
9 сообщений из 9, страница 1 из 1
размер таблицы (настоящий)
    #39713451
nxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хочу узнать размер таблицы


Код: plsql
1.
2.
3.
4.
5.
create table xtest
as
select rownum as rn
from dual
connect by rownum < 10000




пробую....

Код: plsql
1.
2.
3.
select bytes
from  dba_segments 
where segment_name = 'XTEST';



bytes 262144

Код: plsql
1.
2.
3.
select blocks/*20*/ *(select value from v$parameter where name = 'db_block_size') /*8192*/ as bytes
from all_tables t
where table_name = 'XTEST'



bytes 163840

а если еще посмотреть план для

select *
from XTEST

то показывает bytes 39996

кому верить ?
сколько реально читается при запросе и сколько используется в explain plan

то что место выделяется большими кусками мне понятно
непонятно, откуда берется 39996
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713490
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nxx,

объем корзинки
объем яиц в корзинке
объем яичницы
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713493
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713555
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nxxнепонятно, откуда берется 39996Во-первых, если хочется предельной точности надо собирать статистику с estimate_percent=>100.

Далее, в segments 24 блока (3 экстента), а в tables - 20 = 24 - заголовок сегмента - 3 * заголовок экстента.
То есть, tables показывает "Number of used data blocks in the table", а segments - все. (это можно прочитать в описании представлений словаря)

39996 = num_rows * avg_row_len.
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713556
nxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
всё-таки мне кажется разница слишком большая
75% накладных расходов и 25% данных ?
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713558
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nxx,

Расуждения могут несколько отличаться в записимости от automatic/manual segment space management.
Я говорил про auto.
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713562
nxx
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshopnxx,

Расуждения могут несколько отличаться в записимости от automatic/manual segment space management.
Я говорил про auto.

а как это посмотреть ? (база не моя)
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713599
Фотография dbms_photoshop
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nxxвсё-таки мне кажется разница слишком большая
75% накладных расходов и 25% данных ?Все еще хуже. При построении плана берется средняя длина, что может давать заметное отличие от суммы фактических.
Код: plsql
1.
2.
3.
4.
5.
SQL> select sum(vsize(rn)) x from xtest;

         X
----------
     29799

То есть
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> create table xtest as select rownum as rn from dual connect by rownum < 10000;

Table created.

SQL> select (select sum(vsize(rn)) from xtest) / (select blocks * 8192 from user_segments where segment_name = 'XTEST') ratio from dual;

     RATIO
----------
.151565552

Сделай дамп блоков, посмотри что там за беспредел.

Но бывает все не так плохо
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
SQL> create table xtest pctfree 0 as select lpad('x',1080,'x') rn from dual connect by rownum <= 10000;

Table created.

SQL> select (select sum(vsize(rn)) from xtest) / (select blocks * 8192 from user_segments where segment_name = 'XTEST') ratio from dual;

     RATIO
----------
.858306885


nxxа как это посмотреть ? (база не моя)Я верю ты в состоянии скопировать незнакомые слова к гугл.
...
Рейтинг: 0 / 0
размер таблицы (настоящий)
    #39713611
Фотография -2-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dbms_photoshop... средняя длина, что может давать заметное отличие от суммы ...Ага. Приблизительно в произведение на количество строк. Под (avg_)row_len может пониматься суммарная длина значений с "разделителем" в один байт к каждому полю.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / размер таблицы (настоящий)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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