sql >> Databáze >  >> RDS >> Oracle

Vytvoření clusterovaného indexu v Oracle pomocí IOT? Zmatek

Citace z Průvodce koncepty společnosti Oracle

Předpokládejme, že máme tabulku ORDER, jak je popsáno ve vaší otázce.

-- vytvořit tabulku ORDER_, s testovacími daty-- název tabulky s podtržením na konci se vyhýbá ORA-00903:neplatný název tabulkyvytvořit tabulku order_asselect level * 10000 + trunc( dbms_random.value * 100 ) order_id, trunc( dbms_random. value * 100000 ) part_id, dbms_random.string( 'x', 10 ) customer_id, trunc( sysdate + level * 10 ) order_datefrom dual connect by level <=10; 

Testovací data

sql> vyberte * z řádu_; order_id part_id Customer_id Order_date 10069 74711 Kbghahwtl8 27-Mar-18 20034 99571 7Vunfjer44 06-APR-18-18-18-18-18-1818-APR-18-18-1818nSVQU-18-1818nSVQU-18-1818nSVQU-1818-APR-1818-APR-18-1818-APR18-APR18-APR18-APR18-APR18-APR-18 30039 90889 8H5G12D82E 06-May-18 60017 34107 9O4OSETJ4H 16-May-18 70078 53959 77MUCKJW82 26-May-18 80015 NYNIFONIČNÍM 1818 IN-18181181818181818.>

Pokud nyní vytvoříte IOT (index organizovanou tabulku), bude prázdná.

-- váš původní kódCREATE TABLE clust_order( order_id number, part_id number, CONSTRAINT part_pk PRIMARY KEY (part_id))ORGANIZATION INDEX;Tabulka CLUST_ORDER vytvořena.SQL> select * from clust_order;nevybrány žádné řádky 

Co byste místo toho mohli udělat, je:vytvořit IOT výběrem z původní tabulky (viz také:Paralelní vytváření indexově organizované tabulky zde ).

vytvořit tabulku clust_order (part_id omezení part_pk primární klíč, order_id ) organizace indexparallelasselect part_id, order_id from order_; 

Výsledný IOT obsahuje ...

sql> vyberte * z Clust_Order; part_id order_id 9496 80015 34107 60017 38487 100031 53959 70078 64160 30038 74711 10069 81247 40005 88450 90081 90881 50019 99571 20034

Můžete najít tuto diskuzi užitečné.




  1. Jak implementovat tento trigger na Oracle SQL?

  2. Pomozte prosím s vylepšeními STRING_SPLIT

  3. Jaká jsou omezení MS Access?

  4. ORA-01795:maximální počet výrazů v seznamu je 1000 , jak rozdělit řetězec