» »

Preprost kratek SQL - pomoč

Preprost kratek SQL - pomoč

franci0 ::

Zdravo,

to mi ne dela ko v Oracle SQL developerju zaženem:


SELECT (
SELECT *
FROM global_name
) AS ime,
(
SELECT SUM(bytes)
FROM dba_segments
) AS velikost


Kaj počnem narobe?

Rad bi, da bi lahko z 1 stavkom dobil 2 rezultata, torej ime in velikost

bedak ::

na koncu ti manjka
from dual

prozac ::

Mogoče nekaj takega:

select
  owner,
  table_name,
  round((num_rows*avg_row_len)/(1024*1024)) MB 
from
  all_tables
where
  owner not like 'SYS%'  -- Exclude system tables.
  and num_rows > 0 --Exclude empty tables

franci0 ::

Majstor si, hvala ti, dela.

Na googleu sem našel več različnih selectov kako preverit velikost baze in včasih dobim različne rezultate:

A)
select * from global_name
SELECT SUM(bytes)/1024/1024/1024
FROM dba_segments;


B)

select
( select sum(bytes)/1024/1024/1024 data_size from dba_data_files ) +
( select nvl(sum(bytes),0)/1024/1024/1024 temp_size from dba_temp_files ) +
( select sum(bytes)/1024/1024/1024 redo_size from sys.v_$log ) +
( select sum(BLOCK_SIZE*FILE_SIZE_BLKS)/1024/1024/1024 controlfile_size from v$controlfile) "Size in GB"
from
dual


Kako naj vem kateri mi da pravi rezultat?

franci0 ::

Uporabljam pa Oracle SQL Developer, če kdo pozna kakšno funkcijo tukaj noter ki bi mi prikazala velikost baze (torej koliko prostora na disku zaseda baza)

Tody ::

Te tabele ti niso dosegljive če nimaš pravic. Ponavadi se to dela z uporabniko system ali sys

Drugač sem probal tvoj B select in na moji bazi dela :)

franci0 ::

Seveda, imam sys pravice.

Delata tako A kot tudi B, ampak vrneta drugačen rezultat in ne vem, kateri je pravilen.
Like 45 minut sem porabil na googleu...

Tody ::

Ja to pa je že delo DBA-ja :) Odvisno kaj hočeš vidit, oracle baza vseeno ni tako preprosta. Druga ti sešteje še redo files in control file notr ki sta ubistvu samo nekakšen backup, če narediš flashback in podobno.

Če te zanima ali imaš zadost prostora se lahko prijaviš na mašino na kateri teče oracle pa boš videl :)

SELECT SUM(bytes)/1024/1024/1024
FROM DBA_DATA_FILESž

Tole ti da velikost baze, tukaj so dejansko podatki

SELECT SUM(bytes)/1024/1024/1024
FROM DBA_FREE_SPACE

ti da free space


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Ugotoviti ali ima disk SMR?

Oddelek: Strojna oprema
456296 (2858) B34ST
»

Disk velik 500GB ko seštejem razpoložljiv prostor na C-ju in D-ju dobim rezultat 464, (strani: 1 2 3 )

Oddelek: Pomoč in nasveti
10110837 (9280) technolog
»

[SQL] PgAdmin preprosto vprasanje povezano s stolpci v tabeli

Oddelek: Programiranje
222098 (1457) Cvele2011
»

Težave z resolucijo na Linux sistemu

Oddelek: Operacijski sistemi
161374 (1156) INVICTRA

[C++]Polnjenje diska

Oddelek: Programiranje
161102 (792) OwcA

Več podobnih tem