cześć,
jak mogę sprawdzić ile miejsca może zajmować pojedynczy rekord w bazie danych oracle w konkretnej tabeli? jest jakies polecenie sql które mogę wykonać?
0
0
Możesz spróbować wyliczyć:
select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;
Inna opcja to zajrzeć do: DBA_TABLES i tam masz AVG_ROW_LEN dla danej tabeli.
0
yarel napisał(a):
Możesz spróbować wyliczyć:
select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;
no właśnie nie chce po kolei wymieniac kolumn
0
Inari napisał(a):
yarel napisał(a):
Możesz spróbować wyliczyć:
select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;
no właśnie nie chce po kolei wymieniac kolumn
A co to za problem wygenerować sobie zapytanie per tabelka?
select
'select '||listagg('vsize('||column_name,')+') within group (order by 1)||') rowSize, rownum rn from foo;' qry
from
all_tab_cols
where
table_name='FOO';
0
yarel napisał(a):
Inari napisał(a):
yarel napisał(a):
Możesz spróbować wyliczyć:
select vsize(attr1)+vsize(attr2)+vsize(attr3) from tabelka;
no właśnie nie chce po kolei wymieniac kolumn
A co to za problem wygenerować sobie zapytanie per tabelka?
select 'select '||listagg('vsize('||column_name,')+') within group (order by 1)||') rowSize, rownum rn from foo;' qry from all_tab_cols where table_name='FOO';
w niektorych miejscach są nulle, wiec spróbowałem całe wyrazenie vsize(column_name) obrać w NVL by dostać dobre wyniki, jednak dostaje wtedy zwrotke, że napis otrzymany jest zbyt długi :/