Budeme diskutovat o indexech/typech indexů Oracle v oracle s příkladem v tomto příspěvku. Osvětlím všechny možnosti, jak vytvořit index v oracle. Také bych diskutoval o tom, jak zkontrolovat velikost indexu v oracle. Doufám, že se vám tento příspěvek bude líbit. Budu se těšit na zpětnou vazbu k tomuto příspěvku
Co jsou indexy Oracle?
- Stejně jako máme v učebnicích rejstřík, který nám pomáhá najít konkrétní téma v knize, Oracle index se chová stejným způsobem. V oracle máme různé typy indexů.
- Indexy se používají k rychlému prohledávání řádků v tabulce Oracle. Pokud index není přítomen, výběrový dotaz musí přečíst celou tabulku a vrátit řádky. Pomocí Indexu lze řádky načíst rychle
- Při načítání malého počtu řádků z tabulky bychom měli vytvářet indexy. nebo co nejrychleji načíst první sadu řádků z nějakého dotazu, který nakonec vrátí velký počet řádků. Záleží také na distribuci dat, tj. faktoru shlukování
- Indexy jsou logicky a fyzicky nezávislé na datech v přidružené tabulce.
- Indexy jsou volitelné struktury spojené s tabulkami a clustery. Můžete vytvořit indexy pro jeden nebo více sloupců tabulky, abyste urychlili provádění příkazů SQL v této tabulce.
- Při správném použití jsou indexy primárním prostředkem ke snížení I/O disku.
- Dotaz se na začátku rozhodne, zda použít index nebo ne
- Nejlepší na indexech je, že výkon načítání indexovaných dat zůstává téměř konstantní, i když jsou vkládány nové řádky. Přítomnost mnoha indexů v tabulce však snižuje výkon aktualizací, mazání a vkládání, protože Oracle musí také aktualizovat indexy spojené s tabulkou.
- Pokud jste vlastníkem tabulky, můžete vytvořit index, nebo pokud chcete vytvořit index pro tabulku v jiném schématu, měli byste mít buď systémové oprávnění VYTVOŘIT LIBOVOLNÝ INDEX nebo indexové oprávnění pro tuto tabulku
Logický typ indexů
Definuje aplikační charakteristiky Index
Unikátní nebo nejedinečné | Index může být jedinečný nebo nejedinečný. Oracle vytváří jedinečný index pro omezení primárního klíče a jedinečného klíče Pokud jsou v tomto sloupci již přítomny nejedinečné indexy, nevytvoří nový jedinečný index pro primární klíč v Oracle |
Kompozitní | Index se může skládat z jednoho nebo více sloupců. Složené indexy mohou urychlit načítání dat pro příkazy SELECT, ve kterých klauzule WHERE odkazuje na všechny nebo úvodní část sloupců ve složeném indexu. |
Indexy založené na funkcích | Data indexovaného sloupce jsou založena na výpočtu |
Indexy domén aplikací | Tento index se používá ve speciálních aplikacích (prostorové, textové).
|
Co je Pseudo sloupec ROWID
ROWID vrátí adresu každého řádku v tabulce. Oracle každému řádku přiřadí ROWID.ROWID se skládá z následujících
- Číslo datového objektu
- Datový blok v datovém souboru, ve kterém je řádek umístěn
- Pozice řádku v datovém bloku (první řádek je 0)
- Datový soubor, ve kterém je řádek umístěn (první soubor je 1). Číslo souboru je relativní k tabulkovému prostoru.
Oracle používá ROWID interně pro přístup k řádkům. Oracle například ukládá ROWID do indexu a používá jej pro přístup k řádku v tabulce.
ŘÁDEK řádků můžete zobrazit pomocí příkazu SELECT následovně:
vyberte rowid, emp_name z emp;
ROWID EMP_NAME
AAADC576474722aSAAA John
Oracle poskytuje balíček s názvem DBMS_ROWID k dekódování ROWID.
Jakmile je řádek přiřazen, ROWID Oracle nemění ROWID po dobu životnosti řádku. Ale změní se, když je tabulka znovu sestavena, když se řádky přesouvají přes oddíl nebo zmenšují tabulku
Typy indexů v oracle s příkladem
V oracle je 6 různých typů indexů
(1) B-strom
(2) Komprimovaný B-strom
(3) Bitmapa
(4) Na základě funkcí
(5) Reverzní klíč (RKI)
(6) Indexová organizovaná tabulka (IOT).
Pojďme se podrobně seznámit s každým z nich a jak vytvořit index v oracle pro každý z těchto typů
B – Index stromu:
- Indexy B-stromu (vyvážený strom) jsou nejběžnějším typem indexu.
- Index B-Tree uložil ROWID a hodnotu klíče indexu ve stromové struktuře.
- Při vytváření indexu se vytvoří blok ROOT, poté se vytvoří bloky BRANCH a nakonec bloky LEAF.
- Každá větev uchovává rozsah dat, které uchovává její listové bloky, a každý kořen uchovává rozsah dat, která její větve uchovávají:
- Indexy B-stromu jsou nejužitečnější ve sloupcích, které se objevují v klauzuli where (SELECT … WHERE EMPNO=1).
- Server Oracle udržuje strom vyvážený rozdělením indexových bloků, když jsou do tabulky vložena nová data.
- Kdykoli je v tabulce indexu proveden příkaz DML, dojde k aktivitě indexu, díky čemuž index roste (přidává listy a větve).
Výhody
- Všechny bloky listů stromu jsou ve stejné hloubce.
- Indexy B-stromu automaticky zůstávají vyvážené.
- Všechny bloky B-stromu jsou v průměru plné ze tří čtvrtin.
- Stromy B poskytují vynikající výkon při vyhledávání pro širokou škálu dotazů, včetně přesné shody a hledání rozsahu.
- Vkládání, aktualizace a mazání jsou efektivní a udržují pořadí klíčů pro rychlé načtení.
- Výkon B-stromu je dobrý pro malé i velké stoly a nesnižuje se s rostoucí velikostí stolu.
VYTVOŘTEINDEX ON ( , …)TABLESPACE ;PříkladCreate index scott.exp_idx v tabulce scott.example( název)Nástroje tabulkového prostoru; /před> Co jsou komprimované indexy B-stromu
- Komprimované indexy B-stromu jsou postaveny na velkých tabulkách v prostředí datového skladu. V tomto typu indexu jsou eliminovány duplicitní výskyty stejné hodnoty, čímž se snižuje množství úložného prostoru, který index vyžaduje.
- V komprimovaném indexu B-Tree je pro každou hodnotu klíče uchováván seznam ROWID
- Zadáním klíčového slova COMPRESS při vytváření indexu (CREATE INDEX … COMPRESS) vytvoříte komprimovaný index B-Stromu.
- Běžný index B-Stromu lze znovu vytvořit pomocí klíčového slova COMPRESS a zkomprimovat jej.
VYTVOŘITINDEX ON ( , …)PCTFREE TABLESPACE Komprimovat <číslo sloupce> Co jsou indexy bitmap
- Bitmapové indexy jsou nejvhodnější pro data s nízkou odlišnou mohutností (na rozdíl od indexů B-Stromu).
- Tento typ indexu vytváří binární mapu všech hodnot indexu a ukládá tuto mapu do indexových bloků, což znamená, že index bude vyžadovat méně místa než index B-Strom.
- Každý bit v bitmapě odpovídá možnému rowid. Pokud je bit nastaven, znamená to, že řádek s odpovídajícím rowid obsahuje hodnotu klíče. Mapovací funkce převádí bitovou pozici na skutečný rowid, takže index bitmapy poskytuje stejnou funkčnost jako běžný index, i když interně používá jinou reprezentaci. Pokud je počet různých hodnot klíče malý, pak jsou bitmapové indexy prostorově velmi efektivní
- Pokud jsou v tabulkách bitmapové indexy, aktualizace odstraní úplné uzamčení tabulky. Index bitmapy je tedy užitečný u velkých sloupců s nízkou aktivitou DML (občasné aktualizace) nebo u tabulek pouze pro čtení. To je důvod, proč často zjistíte, že bitmapové indexy jsou široce používány v prostředí datového skladu (DWH).
- Struktura indexu bitmap obsahuje mapu bitů, které označují hodnotu ve sloupci, například pro sloupec GENDER bude blok indexu obsahovat počáteční ROWID, koncový ROWID a bitovou mapu:
- Bitmapové indexy jsou velmi užitečné při vytváření ve sloupcích s nízkou mohutností a používají se s operátorem AND &OR v podmínce dotazu:
VYTVOŘTE BITMAP INDEXON ( , …)PCTFREE TABLESPACE Příklad
CREATE BITMAP INDEX ON emp_data(gender);SELECT COUNT(*) FROM emp_dataWHERE GENDER=’M”;Výhody bitmapových indexů
- Snížená doba odezvy u velkých tříd dotazů
- Výrazné snížení využití prostoru ve srovnání s jinými technikami indexování
- Dramatické zvýšení výkonu i na velmi nízkém hardwaru
- Velmi efektivní paralelní DML a načítání
Indexy založené na funkcích
Indexy založené na funkcích jsou indexy vytvořené na sloupcích, na které je obvykle aplikována funkce.
Při použití funkce na indexovaném sloupci je index ignorován, proto je pro tyto operace velmi užitečný index založený na funkcích.
CREATE INDEXON [ Function( , ;PříkladCREATE INDEX EMP_IDX na EMP(UPPER(ENAME));SELECT *FROM EmpWHERE UPPER(Jméno) jako "JOHN"; Co jsou indexy obráceného klíče
- Jsou to speciální typy indexů B-Stromu a jsou velmi užitečné, když jsou vytvořeny se sloupci obsahujícími sekvenční čísla.
- Při použití běžného B-stromu se index rozroste a bude mít mnoho větví a možná i několik úrovní, což způsobí snížení výkonu. RKI problém vyřeší obrácením bajtů každého klíče sloupce a indexováním nových dat.
li>- Tato metoda distribuuje data v indexu rovnoměrně. Vytvoření RKI se provádí pomocí klíčového slova REVERSE:CREATE INDEX … ON … REVERSE;
CREATE INDEXON ( )TABLESPACE REVERSE;PříkladCREATE INDEX emp_idx i ON emp_table (křestní jméno,příjmení) REVERSE; Co jsou indexově organizované tabulky (IOT) –
- Když používáme B-Strom, bitmapové a reverzní klíčové indexy se používají pro tabulky, které ukládají data neuspořádaným způsobem (Hromadné tabulky).
- Tyto indexy obsahují umístění ROWID požadovaného řádku tabulky, což umožňuje přímý přístup k datům řádku.
- tabulka uspořádaná podle indexu se liší od běžné tabulky, protože data pro tabulku jsou uchovávána v jejím přidruženém indexu. Změny v datech tabulky, jako je přidání nových řádků, aktualizace řádků nebo odstranění řádků, vedou k aktualizaci indexu.
- Tabulka uspořádaná podle indexu je jako běžná tabulka s indexem v jednom nebo více sloupcích, ale namísto udržování dvou oddělených úložišť pro tabulku a index B-stromu databázový systém udržuje pouze jeden B- stromový index, který obsahuje jak kódovanou hodnotu klíče, tak hodnoty souvisejících sloupců pro odpovídající řádek. Spíše než mít rowid řádku jako druhý prvek položky indexu, skutečný řádek dat je uložen v indexu B-stromu. Datové řádky jsou vytvořeny na primárním klíči pro tabulku a každá položka indexu B-stromu obsahuje
. Indexově uspořádané tabulky jsou vhodné pro přístup k datům pomocí primárního klíče nebo jakéhokoli klíče, který je platnou předponou primárního klíče. - Nedochází k duplicitě hodnot klíče, protože s klíčem jsou uloženy pouze neklíčové hodnoty sloupců. Můžete sestavit sekundární indexy, které zajistí efektivní přístup pro jiné sloupce. Aplikace manipulují s tabulkou uspořádanou podle indexu stejně jako s běžnou tabulkou pomocí příkazů SQL. Databázový systém však provádí všechny operace manipulací s odpovídajícím indexem B-stromu.
Funkce uspořádané tabulky Index
- Primární klíč jednoznačně identifikuje řádek; musí být zadán primární klíč
- Přístup založený na primárním klíči
- Logický rowid v pseudosloupec ROWID umožňuje vytváření sekundárních indexů
- JEDINEČNÉ omezení není povoleno, ale spouštěče jsou povoleny
- Nelze uložit do clusteru
- Může obsahovat sloupce typu LOB, ale ne sloupce LONG
- Distribuce a replikace nejsou podporovány
Příkaz CREATE TABLE:CREATE TABLE …ORGANIZATION INDEX TABLESPACE … (určete, že se jedná o IOT)PCTTHRESHOLD … (určete % bloku, který se má podržet, aby se uložila data řádku, platné 0-50 (výchozí 50))VČETNĚ … (určete který sloupec přerušit řádek, když délka řádku překročí PCTTHRESHOLD) OVERFLOW TABLESPACE … (určete tabulkový prostor, kde bude uložena druhá část řádku) MAPPING TABLE; (způsobí vytvoření mapovací tabulky, potřebné při vytváření bitmapového indexu na IOT)Tabulka mapování mapuje fyzické ROWID indexu na logické ROWID v IOT. IOT používá logické ROWID ke správě přístupu k tabulce podle indexu, protože fyzické ROWID se mění, kdykoli jsou do tabulky přidána data nebo z ní odebrána data. Chcete-li odlišit IOT od jiných indexů, dotazujte se na pohled USER_INDEXES pomocí sloupce pct_direct_access. Pouze IOT bude mít pro tento sloupec hodnotu jinou než NULL.
Indexy domén aplikací
Oracle poskytuje rozšiřitelné indexování k přizpůsobení indexů na komplexní datové typy, jako jsou dokumenty, prostorová data, obrázky a videoklipy, a k využití specializovaných technik indexování.
Pomocí rozšiřitelného indexování můžete zapouzdřit rutiny správy indexu specifické pro aplikaci jako typ indexu objekt schématu a definujte index domény (index specifický pro aplikaci) na sloupcích tabulky nebo atributech typu objektu. Rozšiřitelné indexování také poskytuje efektivní zpracování operátora specifického pro aplikaci s.
Aplikační software zvaný cartridg e, řídí strukturu a obsah indexu domény. Server Oracle spolupracuje s aplikací při vytváření, údržbě a vyhledávání indexu domény. Samotná struktura indexu může být uložena v databázi Oracle jako indexově organizovaná tabulka nebo externě jako soubor.
Použití indexů domén
Indexy domén jsou vytvářeny pomocí logiky indexování poskytované uživatelem definovaným typem indexu. Typ indexu poskytuje účinný mechanismus pro přístup k datům, která splňují určité predikáty operátorů. Typ indexu definovaný uživatelem je obvykle součástí volby Oracle, jako je volba Prostorová.
Například SpatialIndextype umožňuje efektivní vyhledávání a získávání prostorových dat, která překrývají daný ohraničující rámeček.
Kazeta určuje parametry, které můžete zadat při vytváření a udržování indexu domény. Podobně jsou charakteristiky výkonu a úložiště indexu domény uvedeny ve specifické dokumentaci kazet.
Dosud jsme v oracle pokryli různé typy indexů na příkladu, pojďme se nyní podívat, jak je změnit/vypustit/znovu vytvořit
Jak znovu vytvořit indexy/obnovit index v oracle
Můžeme použít příkaz ALTER INDEX … REBUILD k reorganizaci nebo komprimaci existujícího indexu nebo ke změně jeho charakteristik úložiště
Příkaz REBUILD používá existující index jako základ pro nový.
ALTER INDEX … REBUILD je obvykle rychlejší než vypuštění a opětovné vytvoření indexu.
Čte všechny indexové bloky pomocí víceblokových I/O a poté zahodí větvené bloky.
Další výhodou tohoto přístupu je, že starý index je stále dostupný pro dotazy, zatímco probíhá přestavba.
Změnit indexznovu sestavit;Změnit index znovu vytvořit tabulkový prostor ; Jak psát prohlášení, která nepoužívají indexy
- Můžete použít nápovědu k optimalizaci NO_INDEX, abyste CBO získali maximální flexibilitu a zároveň zakázali použití určitého indexu.
- Pomocí FULL nápovědy můžete optimalizátora přinutit, aby místo prohledávání indexu zvolil úplné prohledávání tabulky.
- Můžete použít tipy INDEX, INDEX_COMBINE nebo AND_EQUAL, abyste optimalizátoru přinutili používat jeden index nebo sadu uvedených indexů místo jiného.
Jak získat statistiky pro indexy
Statistiky indexu se shromažďují pomocí příkazu ANALYZE INDEX nebo dbms_stats.
Dostupné možnosti jsou COMPUTE/ESTIMATE STATISTICS nebo VALIDATE STRUCTURE.
Od 10g výše, když je index vytvořen, výpočetní statistika se provádí automaticky
Při použití struktury ověření vyplní Oracle pohled INDEX_STATS statistikami souvisejícími s analyzovaným indexem. Statistika obsahuje počet řad listů a bloků (LF_ROWS, LF_BLKS), počet řad větví a bloků (BR_ROWS, BR_BLKS), počet smazaných řad listů (DEL_LF_ROWS), použité místo (USED_SPACE), počet odlišných klíčů (DISTINCT_KEYS) , atd. Tyto statistiky lze použít k určení, zda by měl být index znovu sestaven
Jak Oracle rozhoduje o použití indexu?
Oracle automaticky rozhodne, zda má být index používán jádrem Optimalizátoru.
Oracle se v závislosti na dotazu rozhodne, zda použije index.
Oracle dokáže pochopit, zda použití indexu zlepší výkon v daném dotazu. Pokud se Oracle domnívá, že použití indexu zlepší výkon, použije index, jinak bude index ignorovat.
Pojďme to pochopit na tomto příkladu
Máme tabulku emp , která obsahuje emp_name, plat, dept_no, emp_no, date_of_joining a máme index emp_name
Dotaz 1
vyberte * z emp, kde emp_name ='Jan';Výše uvedený dotaz použije index, protože se snažíme získat informace o emp na základě názvu.
Dotaz 2
vyberte * z emp;Výše uvedený dotaz nebude používat index, protože se snažíme najít všechny řádky v tabulce a v dotazu nemáme klauzuli where
Dotaz 3
vyberte * z emp kde dept_no =5;Výše uvedený dotaz nebude používat index, protože klauzule where nevybírá sloupec, který má index
Dotaz 4
vyberte * z emp where substr(emp_name,1,4) =’XYZW’;Výše uvedený dotaz nebude používat index, protože klauzule where používá funkci ve sloupci a nemáme funkční index na emp_name
Jak vytvořit nebo znovu vytvořit index online?
Oracle ve starších verzích během procesu vytváření zamykal tabulku, na které se index vytváří. Tím je tabulka nedostupná pro manipulaci s daty během vytváření indexu.
Nyní s 8i představil Oracle online přestavbu indexu, kde Oracle nezamyká tabulku, na které se index vytváří.
Online indexování je poskytováno prostřednictvím klíčového slova ONLINE.
VYTVOŘTEINDEX ON ( , …)PCTFREE TABLESPACE Online;Změnit index znovu sestavit online; V zásadě při online přestavbě Oracle uzamkne tabulku na začátku a na konci vytváření indexu. Umožňuje transakce mezi nimi. Mechanismus byl docela vylepšen s 11g a 12c
Jaké jsou nevýhody indexů
Indexy zvyšují výkon výběrového dotazu, mohou také snížit výkon manipulace s daty.
Mnoho indexů v tabulce může výrazně zpomalit INSERTS a DELETE
Čím více indexů v tabulce, tím více času zabere vkládání a mazání.
Podobně každá změna indexovaného sloupce bude vyžadovat změnu indexu.
Takže musíme velmi pečlivě vybrat index a vypustit ty, které se nepoužívají.
I když se bere v úvahu i prostor navíc, který zabírají indexy, nemusí to příliš záležet, protože náklady na ukládání dat se podstatně snížily.
Co jsou nepoužitelné indexy
Nepoužitelný index je optimalizátorem při rozhodování o plánu vysvětlení ignorován
Není také spravován DML, tj. aktualizovat, vložit, odstranit, aktualizuje index
Důvodů, proč je index v nepoužitelném stavu, může být několik. Provedli jste znovu sestavení tabulky, ale neprovedli jste znovu sestavení indexu, index bude v nepoužitelném stavu. Dalším důvodem, proč je index nepoužitelný, je zlepšit výkon hromadného načítání. Dalším důvodem může být to, že optimalizátor pokaždé vybere nesprávný index, což je kritické, takže se můžete rozhodnout, že bude nepoužitelný
Nepoužitelný index nebo oddíl indexu musí být před použitím znovu sestaven nebo zrušen a znovu vytvořen. Zkrácení tabulky činí nepoužitelný index platným.
Počínaje Oracle Database 11g Release 2, když uděláte existující index nepoužitelným, jeho segment indexu bude zrušen.
Funkčnost nepoužitelných indexů závisí na nastavení inicializačního parametru SKIP_UNUSABLE_INDEXES.
Když má SKIP_UNUSABLE_INDEXES hodnotu TRUE (výchozí), pak:
Příkazy DML proti tabulce pokračují, ale nepoužitelné indexy se neudržují.
Příkazy DML končí s chybou, pokud existují nějaké nepoužitelné indexy, které se používají k vynucení omezení UNIQUE.
U nerozdělených indexů optimalizátor při vytváření přístupového plánu pro příkazy SELECT nezohledňuje žádné nepoužitelné indexy. Jedinou výjimkou je situace, kdy je index explicitně zadán pomocí nápovědy INDEX().
Když je SKIP_UNUSABLE_INDEXES NEPRAVDA, pak:
Pokud jsou přítomny nějaké nepoužitelné indexy nebo indexové oddíly, všechny příkazy DML, které by způsobily aktualizaci těchto indexů nebo indexových oddílů, jsou ukončeny s chybou.
V případě příkazů SELECT, pokud je přítomen nepoužitelný index nebo nepoužitelný oddíl indexu, ale optimalizátor se nerozhodne jej použít pro přístupový plán, příkaz pokračuje. Pokud se však optimalizátor rozhodne použít nepoužitelný index nebo nepoužitelný oddíl indexu, příkaz skončí s chybou.
Zobrazení datového slovníku na indexech
DBA_INDEXES VŠECHNY_INDEXES USER_INDEXES Pohled DBA popisuje indexy všech tabulek v databázi. Zobrazení ALL popisuje indexy na všech tabulkách přístupných uživateli. Zobrazení USER je omezeno na indexy vlastněné uživatelem. Některé sloupce v těchto zobrazeních obsahují statistiky, které jsou generovány balíčkem DBMS_STATS nebo příkazem ANALYZE. DBA_IND_COLUMNS VŠECHNY_IND_COLUMNS USER_IND_COLUMNS
Tyto pohledy popisují sloupce indexů v tabulkách. Některé sloupce v těchto zobrazeních obsahují statistiky, které jsou generovány balíčkem DBMS_STATS nebo příkazem ANALYZE. DBA_IND_EXPRESSIONS ALL_IND_EXPRESSIONS USER_IND_EXPRESSIONS
Tyto pohledy popisují výrazy indexů založených na funkcích v tabulkách. DBA_IND_STATISTICS ALL_IND_STATISTICS USER_IND_STATISTICS
Tato zobrazení obsahují statistiky optimalizátoru pro indexy. jak najít indexy v tabulce
set pagesize 50000 ověřit off echo offcol název_tabulky head 'Název_tabulky' formát a20col index_name head 'Název indexu' formát a25col název_sloupce head 'Název sloupce' formát a30break na název_tabulky na název_indexuvyberte název_tabulky, index_název, název_sloupce, název_sloupce ze všech_název_tabulky jako horní_sloupce' ')uspořádat podle názvu_tabulky, názvu_indexu, umístění_sloupce/Jak určit velikost indexu
Velikost INDEX vyberte název_segmentu,součet(bajty)/1024/1024/1024 jako „VELIKOST v GB“ z uživatelských_segmentů, kde název_segmentu='INDEX_NAME' seskupte podle názvu_segmentu;NEBOvyberte vlastníka,název_segmentu,součet(bajtů)/1024/1024/1024 jako „VELIKOST v GB" z dba_segments, kde owner='SCHEMA_NAME' a segment_name='INDEX_NAME' seskupují podle vlastníka,segment_name; Seznam velikostí všech INDEXŮ UŽIVATELE vyberte název_segmentu,součet(bajty)/1024/1024/1024 jako „VELIKOST v GB“ z uživatelských_segmentů, kde typ_segmentu='INDEX' seskupte podle názvu_segmentu pořadí podle „SIZE v GB“ deskc;NEBOvyberte vlastníka,název_segmentu,součet(bajtů)/1024 /1024/1024 jako „VELIKOST v GB“ z dba_segments, kde vlastník='SCHEMA_NAME' a segment_type='INDEX' seskupují podle vlastníka, název_segmentu pořadí podle "SIZE v GB" popis;Součet velikostí všech indexů vybrat vlastníka,součet(bajty)/1024/1024/1024 jako „VELIKOST v GB“ z dba_segments, kde vlastník='SCHEMA_NAME' a segment_type='INDEX' seskupují podle vlastníka;Jak určit index definice
set long 4000select dbms_metadata.get_ddl('INDEX','',' Jak zjistit statistiku indexu
nastavit stránky 250set řádků 100set ověřit offcol formát název_tabulky a24 nadpis 'NÁZEV TABULKY'col index_name format a23 nadpis 'INDEX NAME'formát col u a1 nadpis 'U'col blevel formát 0 nadpis 'BL'col list_blocks formát 999990 nadpis 'LEAF |BLOCKS'col different_keys format 9999990 header 'DISTINCT|KEYS'col avg_leaf_blocks_per_key format 9999990 title 'LEAF|BLKS|/KEY'col avg_data_blocks_per_key format 9999990 nadpis 'DATA|BLKS_name table_name,dename'vyberte nadpis 'DATA|BLKS_name table_name,dename' 'UNIQUE', 'U', null ) u,blevel, leaf_blocks, different_keys,avg_leaf_blocks_per_key, avg_data_blocks_per_keyfrom sys.dba_indexes kde vlastník_tabulky jako horní('&vlastník')a název_tabulky jako horní_název,
Související články
externí tabulky v Oracle :Podívejte se na tento příspěvek pro informace o použití externích tabulek v oracle s příkladem, jak vytvořit externí tabulku, jak ji používat
Oracle Create table :Tabulky jsou základní jednotkou dat úložiště v databázi Oracle. zabýváme se tím, jak používat příkaz Oracle create table k vytvoření tabulky s cizím klíčem /primární klíč
příkaz oracle create tablespace:Tento článek o tom, jak vytvořit tabulkový prostor v oracle, různé vlastnosti s ním spojené a různé příkazy vytvoření tabulkového prostoru
Zjištění stavu indexů a přiřazených sloupců pro tabulku
Virtuální index v Oracle:Co je virtuální index v Oracle? Použití, omezení, výhoda a způsob kontroly k vysvětlení plánu v databázi Oracle, Skrytý parametr _USE_NOSEGMENT_INDEXES
Faktor clusteringu Oracle Index:Jak se vypočítává faktor clustering Oracle Index a jak to ovlivňuje plán vysvětlení
Oracle Partition Index :Vysvětlení indexu oddílů Oracle,Co jsou globální indexy bez oddílů?, Co jsou místní indexy s předponou, místní index bez předponDoporučené kurzy
Zde je pěkný kurz Udemy pro Oracle SQL
Oracle-Sql-krok za krokem:Tento kurz pokrývá základní sql, spojení, vytváření tabulek a úpravu jejich struktury, vytváření zobrazení, sjednocení, sjednocení – vše a mnoho dalších věcí. . Skvělý kurz a kurz, který musíte mít pro začátečníky SQL
Úplný certifikační kurz Oracle SQL :Toto je dobrý kurz pro každého, kdo chce být Job připravený na vývojářské dovednosti SQL. Pěkně vysvětlený kurz
Oracle SQL Developer:Základy, tipy a triky :Vývojářský nástroj Oracle Sql používá mnoho vývojářů. Tento kurz nám poskytuje triky a lekce, jak jej efektivně používat a stát se produktivním vývojářem sql
Oracle SQL Performance Tuning Masterclass 2020 :Ladění výkonu je jednou z kritických a nejvyhledávanějších dovedností. Toto je dobrý kurz, jak se o tom dozvědět a začít s laděním výkonu SQL