2. feladat ~~~~~~~~~~ * Az alabbi kerdesekre adjatok meg a valaszt es azt az SQL lekerdezest * (lekerdezeseket), amivel megkaptatok az eredmenyt. * Adjuk meg az adatbazishoz tartozo adatfile-ok nevet es meretet. $ select file_name, bytes from dba_data_files; az eredmeny: /users/elte/oracle/db/oradata/V8/system01.dbf 209715200 /users/elte/oracle/db/oradata/V8/rbs01.dbf 209715200 /users/elte/oracle/db/oradata/V8/temp01.dbf 209715200 /users/elte/oracle/db/oradata/V8/tools01.dbf 26214400 /users/elte/oracle/db/oradata/V8/users01.dbf 52428800 /users/elte/oracle/db/oradata/V8/users02.dbf 209715200 /users/elte/oracle/db/oradata/V8/users03.dbf 209715200 /users/elte/oracle/db/oradata/V8/reposit01.dbf 209715200 /users/elte/oracle/db/oradata/V8/users04.dbf 419430400 * Adjuk meg, hogy milyen tablespace-ek vannak letrehozva az adatbazisban. $ select tablespace_name from dba_tablespaces; eredmeny: TABLESPACE_NAME ------------------------------ SYSTEM RBS TEMP TOOLS USERS REPOSIT * Mekkora a blokkok merete az adatbazisban? $ select distinct bytes/blocks from dba_segments; eredmeny: BYTES/BLOCKS ------------ 2048 * Melyik egy adott user (mondjuk pl. az ORAUSER nevu user) alapertelmezes * szerinti tablespace-e? $ select default_tablespace from dba_users where username like '%ORAUSER%'; eredmeny: 'USERS' * Melyik a legnagyobb meretu tabla az adatbazisban? * (A particionalt tablakat most ne vegyuk figyelembe.) $ select max(blocks) from dba_tables; eredmeny: '405' $ select owner, table_name from dba_tables where blocks='405'; eredmeny: REPOS_OWNER RM_PROPERTIES * Melyik a legnagyobb meretu index az adatbazisban? * (A particionalt indexeket most ne vegyuk figyelembe.) $ select owner, segment_name, bytes from dba_segments where bytes=(select max(bytes) from dba_segments where segment_type='INDEX'); eredmeny: OWNER SEGMENT_NAME BYTES ------------------------ KSZILVIA IDX_EMP_EMPNO 104857600 * Ha az ORAUSER nevu oracle user letrehoz egy tablat * (mondjuk a kovetkezo egyszeru utasitassal: CREATE TABLE T_nev(oszl1 CHAR(5)) ) * akkor melyik tablespace-en fog letrejonni a tabla es mekkora helyet * fog elfoglalni? A default-tablespace-e'n, azaz a "users"-en fog letrejonni. Helyfoglalasa: 102400 Letrehozas: CREATE TABLE T_nev(oszl1 CHAR(5)); Lekerdezes: $ select bytes from dba_segments where owner='SZAMOSP' and segment_name='T_NEV'; * Adjuk meg, hogy az egyes adatfajlokban mennyi a foglalt hely osszesen. Osszesen: $ select sum(bytes) from dba_data_files; eredmeny: 1756364800 Kulon-kulon: FILE_NAME BYTES --------------- /users/elte/oracle/db/oradata/V8/system01.dbf 209715200 /users/elte/oracle/db/oradata/V8/rbs01.dbf 209715200 /users/elte/oracle/db/oradata/V8/temp01.dbf 209715200 /users/elte/oracle/db/oradata/V8/tools01.dbf 26214400 /users/elte/oracle/db/oradata/V8/users01.dbf 52428800 /users/elte/oracle/db/oradata/V8/users02.dbf 209715200 /users/elte/oracle/db/oradata/V8/users03.dbf 209715200 /users/elte/oracle/db/oradata/V8/reposit01.dbf 209715200 /users/elte/oracle/db/oradata/V8/users04.dbf 419430400 * Melyik felhasznalo objektumai foglalnak * osszesen a legtobb helyet az adatbazisban? $ select max(bytes) from dba_segments; A legtobb helyet foglalo objektum merete: '104857600' $ select owner from dba_segments where bytes='104857600'; A legtobb helyet foglalo objektum tulajdonosa: 'KSZILVIA' * Adjuk meg, hogy az adatbazisban melyik tabla all a legtobb darab extensbol. $ select segment_name, extents from dba_segments where segment_type='TABLE' order by extents DESC; eredmeny: 'ANYAGB 468' * Adjuk meg, hogy az egyes tablespace-eken mekkora * a legnagyobb meretu osszefuggo szabad hely, * vagyis a legnagyobb meretu szabad extens. $ select tablespace_name, max(bytes) from dba_free_space group by tablespace_name; Adjuk meg tablespace-enkent, hogy mennyi a foglalt es a szabad hely a tablespace-en a kovetkezo semaban: (tablespace_nev, foglalt_hely, szabad_hely) $ select tablespace_name, sum(foglalt), sum(szabad) from ( select tablespace_name, sum(bytes) as foglalt, 0 as szabad from dba_segments group by tablespace_name union select tablespace_name, 0 as foglalt, sum(bytes) as szabad from dba_free_space group by tablespace_name) group by tablespace_name; eredmeny: TABLESPACE_NAME SUM(FOGLALT) SUM(SZABAD) ------------------------------ ------------ ----------- RBS 77608960 132104192 REPOSIT 84746240 124966912 SYSTEM 147718144 61995008 TEMP 102400 209610752 TOOLS 6645760 19566592 USERS 661094400 230187008 * * * * *