-- Index szervezett tábla index része: -- DBA_INDEXES -> lásd index_type és table_name oszlopok -- Index szervezett tábla tábla része: -- DBA_TABLES -> lásd iot_name és iot_type oszlopok drop table cikk_iot; drop table cikk_iot2; -- Index szervezett tábla (Index Organized Table) CREATE TABLE cikk_iot ( ckod integer, cnev varchar2(20), szin varchar2(15), suly float, CONSTRAINT cikk_iot_pk PRIMARY KEY (ckod) ) ORGANIZATION INDEX PCTTHRESHOLD 20 INCLUDING cnev OVERFLOW TABLESPACE users; -- OVERFLOW rész INSERT INTO cikk_iot SELECT * FROM nikovits.cikk; COMMIT; -- További index létrehozása az index szervezett táblára CREATE INDEX CIKK_IOT_SZIN on cikk_iot(szin); -- Egy másik index szervezett tábla túlcsordulási (OVERFLOW) rész nélkül CREATE TABLE cikk_iot2 ( ckod integer, cnev varchar2(20), szin varchar2(15), suly float, CONSTRAINT cikk_iot2_pk PRIMARY KEY (ckod) ) ORGANIZATION INDEX; INSERT INTO cikk_iot2 SELECT * FROM nikovits.cikk; COMMIT; /******** Az index-szervezett táblára vonatkozó információk az adatszótárban: -------------------------------------------------------------------- -- nézzük az indexeket SELECT table_name, index_name, index_type FROM dba_indexes WHERE owner='NIKOVITS' AND table_name='CIKK_IOT'; t_name i_name index_type ----------------------------------------- CIKK_IOT CIKK_IOT_PK IOT - TOP --> IOT - TOP (ez az elsődleges indexe a táblának) CIKK_IOT CIKK_IOT_SZIN NORMAL --> NORMAL (ez egy további index a tábla másik oszlopára) ... -- nézzük a tábla jellegű részeket SELECT table_name, iot_name, iot_type FROM dba_tables WHERE owner='NIKOVITS' AND (table_name LIKE 'CIKK_IOT%' OR iot_name LIKE 'CIKK_IOT%'); table_name iot_name iot_type ----------------------------------------------- CIKK_IOT null IOT --> IOT: innen látjuk, hogy index-szervezett a tábla SYS_IOT_OVER_152024 CIKK_IOT IOT_OVERFLOW --> ez a túlcsordulási rész, IOT_NAME oszlop megadja a tábla nevét ... -- nézzük az objektumokat SELECT object_name, object_type, object_id, data_object_id FROM dba_objects WHERE owner='NIKOVITS' AND (object_name LIKE 'SYS_IOT%' OR object_name LIKE 'CIKK_IOT%'); object_name object_type object_id data_object_id ---------------------------------------------------------- CIKK_IOT_PK INDEX 100673 100673 --> az index részben van tárolva a sorok eleje SYS_IOT_OVER_152024 TABLE 100672 100672 --> a túlcsordulási részben van tárolva a sorok vége CIKK_IOT TABLE 100671 NULL --> a tábla most csak egy név, nincs szegmense (-> NULL) CIKK_IOT_SZIN INDEX 156641 156641 --> a másik index CIKK_IOT2 TABLE 81849 NULL --> ennek sincs szegmense, a sorok az indexben vanak tárolva CIKK_IOT2_PK INDEX 81850 81850 --> a tábla sorai a B+ fa index leveleiben vannak tárolva ... -- nézzük a szegmenseket SELECT segment_name, segment_type, bytes FROM dba_segments WHERE owner='NIKOVITS' AND (segment_name LIKE 'SYS_IOT%' OR segment_name LIKE 'CIKK_IOT%'); segment_name segment_type bytes --------------------------------------- CIKK_IOT_PK INDEX 131072 --> index típusú szegmens SYS_IOT_OVER_152024 TABLE 65536 --> a túlcsordulási rész egy tábla típusú szegmens CIKK_IOT_SZIN INDEX 65536 --> egy másik index, külön szegmensen CIKK_IOT2_PK INDEX 131072 --> ennek az IOT-nek nincs is túlcsordulási szegmense ... ******/