sql >> Databasteknik >  >> RDS >> Oracle

Oracle Index och typer av index i Oracle med exempel

Vi kommer att diskutera Oracle-index/-typer av index i Oracle med exempel  i det här inlägget. Jag kommer att gå igenom alla alternativ för hur man skapar index i Oracle. Jag skulle också diskutera hur man kontrollerar indexstorlek i Oracle. Jag hoppas att du kommer att gilla det här inlägget. Jag ser fram emot  feedback på det här inlägget

Vad är Oracle-index?

  • Precis som vi har index i läroböckerna för att hjälpa oss att hitta det specifika ämnet i boken, fungerar Oracle index på samma sätt. Vi har olika typer av index i oracle.
  • Index används för att snabbt söka i raderna i orakeltabellen. Om indexet inte finns måste urvalsfrågan läsa hela tabellen och returnera raderna. Med Index kan raderna hämtas snabbt
  • Vi bör skapa index när vi hämtar ett litet antal rader från en tabell. eller för att hämta den första uppsättningen rader så snabbt som möjligt från någon fråga som i slutändan kommer att returnera ett stort antal rader. Det beror också på datafördelningen, dvs klustringsfaktor
  • Index är logiskt och fysiskt oberoende av data i den associerade tabellen.
  • Index är valfria strukturer associerade med tabeller och kluster. Du kan skapa index på en eller flera kolumner i en tabell för att påskynda körningen av SQL-satsen i den tabellen.
  • Index är det primära sättet att minska disk I/O när de används på rätt sätt.
  • Frågan avgör i början om index ska användas eller inte
  • Det bästa med index är att hämtningsprestanda för indexerad data förblir nästan konstant, även när nya rader infogas. Förekomsten av många index på en tabell minskar dock prestandan för uppdateringar, borttagningar och infogar eftersom Oracle också måste uppdatera indexen som är associerade med tabellen.
  • Om du är  ägare av en tabell kan du skapa index  eller om du vill skapa index för tabell i ett annat schema bör du antingen ha  SKAPA NÅGOT INDEX-systembehörighet  eller indexbehörighet för den tabellen

Logisk typ av index

Den definierar applikationsegenskaperna för Indexet

Unik eller icke-unik Ett index kan vara Unikt eller icke Unikt. Oracle skapar ett unikt index för primärnyckel och unika nyckelbegränsningar
Om icke-unika index redan finns på den kolumnen, kommer det inte att skapa ett nytt unikt index för primärnyckel i Oracle
Komposit Indexet kan bestå av enstaka eller flera kolumner. Sammansatta index kan påskynda hämtning av data för SELECT-satser där WHERE-satsen refererar till hela eller den inledande delen av kolumnerna i det sammansatta indexet.
Funktionsbaserade index Den indexerade kolumns data är baserad på en beräkning
Aplikationsdomänindex Detta index används i speciella applikationer (Spatial, Text).

Vad är ROWID Pseudo-kolumn

ROWID returnerar adressen för varje rad i tabellen. Oracle tilldelar en ROWID till varje rad.ROWID består av följande

  • Dataobjektets nummer
  • Datablocket i datafilen där raden finns
  • Radens position i datablocket (första raden är 0)
  • Datafilen där raden finns (första filen är 1). Filnumret är relativt tabellutrymmet.

Oracle använder ROWID internt för att komma åt rader. Oracle lagrar till exempel ROWID i indexet och använder det för att komma åt raden i tabellen.

Du kan visa ROWID av rader med hjälp av kommandot SELECT enligt följande:

välj rowid, emp_name från emp;

ROWID EMP_NAME

AAADC576474722aSAAA   John

Oracle tillhandahåller ett paket som heter DBMS_ROWID för att avkoda ROWID.

När en rad väl har tilldelats en ROWID ändrar Oracle inte ROWID under radens livstid. Men det ändras när tabellen byggs om när rader flyttas över partitionen eller krymper av tabellen

Typer av index i Oracle med exempel

Det finns 6 olika typer av index i oracle

(1) B-träd

(2) Komprimerat B-träd

(3)  Bitmapp

(4) Funktionsbaserad

(5) Reverse Key (RKI)

(6) Index organiserad tabell (IOT).

Låt oss ta reda på var och en av dem i detalj och hur man skapar ett index i oracle för var och en av dessa typer

B – Trädindex:

  • B-Tree Index (balanserat träd) är den vanligaste typen av index.
  • B-Tree index lagrade ROWID och indexnyckelvärdet i en trädstruktur.
  • När du skapar ett index skapas ett ROOT-block, sedan skapas BRANCH-block och slutligen LEAF-block.
  • Varje gren innehåller dataintervallet som dess lövblock innehåller, och varje rot innehåller dataintervallet som dess grenar innehåller:
  • B-Tree-index är mest användbara på kolumner som visas i where-satsen (SELECT … WHERE EMPNO=1).
  • Oracle-servern håller trädet balanserat genom att dela upp indexblock när ny data infogas i tabellen.
  • När en DML-sats utförs på indexets tabell, inträffar indexaktivitet, vilket gör att indexet växer (lägg till blad och grenar).

Fördelar

  • Alla lövblock i trädet är på samma djup.
  • B-trädindex förblir automatiskt balanserade.
  • Alla block i B-trädet är i genomsnitt tre fjärdedelar fulla.
  • B-träd ger utmärkta hämtningsprestanda för ett brett utbud av frågor, inklusive exakt matchning och intervallsökningar.
  • Infogningar, uppdateringar och raderingar är effektiva och upprätthåller nyckelordningen för snabb hämtning.
  • B-tree prestanda är bra för både små och stora bord och försämras inte när storleken på ett bord växer.
SKAPA   INDEX  (,...)TABELLPACE ;ExempelSkapa index   scott.exp_idx   på tabell scott.exempel( TOOLS); 

Vad är komprimerade B-trädindex

  • Komprimerade B-Tree Index byggs på stora tabeller i en datalagermiljö. I denna typ av index elimineras dubbla förekomster av samma värde, vilket minskar mängden lagringsutrymme som indexet kräver.
  • I ett komprimerat B-Tree-index, för varje nyckelvärde, hålls en lista över ROWIDs
  • Om du anger nyckelordet COMPRESS när du skapar ett index (CREATE INDEX … COMPRESS) skapas ett komprimerat B-Tree-index.
  • Ett vanligt B-Tree-index kan byggas om med nyckelordet COMPRESS för att komprimera det.
SKAPA   INDEX  (,...)PCTFREE TABELLPLATS Komprimera  

Vad är bitmappsindex

  • Bitmappsindex är mest lämpliga för låga distinkta kardinalitetsdata (i motsats till B-Tree-index).
  • Denna typ av index skapar en binär karta över alla indexvärden och lagrar den kartan i indexblocken, vilket betyder att indexet kommer att kräva mindre utrymme än B-Tree index.
  • Varje bit i bitmappen motsvarar en möjlig rad. Om biten är satt betyder det att raden med motsvarande rad innehåller nyckelvärdet. En mappningsfunktion konverterar bitpositionen till en faktisk rad, så bitmappsindexet ger samma funktionalitet som ett vanligt index även om det använder en annan representation internt. Om antalet olika nyckelvärden är litet är bitmappsindex mycket utrymmeseffektiva
  • När det finns bitmappsindex på tabeller kommer uppdateringar att ta bort fullständiga tabelllås. Så, bitmappsindex är användbart på stora kolumner med låg DML-aktivitet (sällsynta uppdateringar) eller skrivskyddade tabeller. Det är anledningen till att du ofta upptäcker att bitmappsindex används i stor utsträckning i datalagermiljön (DWH).
  • Bitmappsindexstrukturen innehåller en karta över bitar som indikerar värdet i kolumnen, till exempel för GENDER-kolumnen kommer indexblocket att innehålla start-ROWID, slut-ROWID och bitmapp:
  • Bitmappsindex är mycket användbara när de skapas på kolumner med låg kardinalitet, som används med operatorn OCH &ELLER i frågevillkoret:
SKAPA BITMAP  INDEX  (,...)PCTFREE TABELLPLATS 

Exempel

SKAPA BITMAPINDEX PÅ emp_data(gender);VÄLJ ANTAL(*) FROM emp_dataWHERE GENDER=’M”;

Fördelar med bitmappsindex

  • Minskad svarstid för stora klasser av frågor
  • En avsevärd minskning av utrymmesanvändning jämfört med andra indexeringstekniker
  • Dramatiska prestandaförbättringar även på mycket låg maskinvara
  • Mycket effektiv parallell DML och belastningar

Funktionsbaserade index

Funktionsbaserade index är index som skapas på kolumner som en funktion vanligtvis används på.

När du använder en funktion på en indexerad kolumn ignoreras indexet, därför är ett funktionsbaserat index mycket användbart för dessa operationer.

SKAPA INDEX  [Funktion(,;ExempelSKAPA INDEX EMP_IDX på EMP(UPPER(ENAME));SELECT *FROM EmpWHERE UPPER(Ename) som 'JOHN';

Vad är omvänd nyckelindex

  • De  är speciella typer av B-Tree-index och är mycket användbara när de skapas på kolumner som innehåller sekventiella nummer.
  • När du använder ett vanligt B-träd kommer indexet att växa till att ha många grenar och kanske flera nivåer, vilket orsakar prestandaförsämring, RKI löser problemet genom att vända byten för varje kolumnnyckel och indexera den nya data.
  • Den här metoden fördelar data jämnt i indexet. Att skapa en RKI görs med nyckelordet REVERSE:CREATE INDEX … ON … REVERSE;
SKAPA INDEX  ()TABELLSPLATS REVERSE;ExempelSKAPA INDEX emp_idx i PÅ emp_table (förnamn,efternamn) REVERSE;

Vad är Index Organized Tables (IOT)

  • När vi  använder B-Tree, används Bitmap och Reverse Key  index för tabeller som lagrar data på ett oordnat sätt (Heap Tables).
  • Dessa index innehåller platsen för ROWID för den obligatoriska tabellraden, vilket ger direkt åtkomst till raddata
  • En indexorganiserad tabell skiljer sig från en vanlig tabell eftersom data för tabellen hålls i dess tillhörande index. Ändringar av tabelldata, som att lägga till nya rader, uppdatera rader eller ta bort rader, resulterar i att indexet uppdateras.
  • Den indexorganiserade tabellen är som en vanlig tabell med ett index på en eller flera av dess kolumner, men istället för att ha två separata lagringar för tabellen och B-trädets index, upprätthåller databassystemet endast en enda B- trädindex som innehåller både det kodade nyckelvärdet och de associerade kolumnvärdena för motsvarande rad. Istället för att ha en rads rad som det andra elementet i indexposten, lagras den faktiska dataraden i B-trädets index. Dataraderna är byggda på primärnyckeln för tabellen och varje B-trädindexpost innehåller . Indexorganiserade tabeller är lämpliga för att komma åt data med primärnyckeln eller vilken nyckel som helst som är ett giltigt prefix för primärnyckeln.
  • Det finns ingen dubblering av nyckelvärden eftersom endast icke-nyckelkolumnvärden lagras med nyckeln. Du kan bygga sekundära index för att ge effektiv åtkomst av andra kolumner. Applikationer manipulerar den indexorganiserade tabellen precis som en vanlig tabell, med hjälp av SQL-satser. Databassystemet utför dock alla operationer genom att manipulera motsvarande B-trädindex.

Funktioner i Index organiserad tabell

  • Primärnyckel identifierar unikt en rad; primärnyckel måste anges
  • Primärnyckelbaserad åtkomst
  • Logisk rad i ROWID-pseudokolumnen gör det möjligt att bygga sekundära index
  • UNIKA begränsningar är inte tillåtna men utlösare är tillåtna
  • Kan inte lagras i ett kluster
  • Kan innehålla LOB-kolumner men inte LONG-kolumner
  • Distribution och replikering stöds inte


CREATE TABLE kommando:CREATE TABLE …ORGANISATION INDEX TABLESPACE … (ange att detta är ett IOT)PCTTHRESHOLD … (ange % av blocket som ska hållas för att lagra raddata, giltigt 0-50 (standard 50))INKLUSIVE … (specificera vilken kolumn som ska bryta en rad när radlängden överstiger PCTTHRESHOLD) OVERFLOW TABLESPACE … (ange tabellutrymmet där den andra delen av raden ska lagras) MAPPING TABLE; (orsak skapandet av en mappningstabell, som behövs när du skapar Bitmap-index på IOT)

Mappningstabellen mappar indexets fysiska ROWID till logiska ROWID i IOT. IOT använder logiska ROWIDs för att hantera tabellåtkomst efter index eftersom fysiska ROWIDs ändras när data läggs till eller tas bort från tabellen. För att skilja IOT från andra index, fråga vyn USER_INDEXES med kolumnen pct_direct_access. Endast IOT kommer att ha ett icke-NULL-värde för denna kolumn.

Programdomänindex

Oracle tillhandahåller utvidgbar indexering för att ta emot index på komplexa datatyper som dokument, rumslig data, bilder och videoklipp och att använda specialiserade indexeringstekniker.

Med utbyggbar indexering kan du kapsla in applikationsspecifika indexhanteringsrutiner som en indextyp schemaobjekt och definiera ett domänindex (ett applikationsspecifikt index) på tabellkolumner eller attribut för en objekttyp. Utökningsbar indexering ger också effektiv bearbetning av applikationsspecifik operatör s.

Programvaran, som kallas kassetten e, kontrollerar strukturen och innehållet i ett domänindex. Oracle-servern interagerar med applikationen för att bygga, underhålla och söka i domänindexet. Själva indexstrukturen kan lagras i Oracle-databasen som en indexorganiserad tabell eller externt som en fil.

Använda domänindex

Domänindex byggs med hjälp av indexeringslogiken som tillhandahålls av en användardefinierad indextyp. En indextyp tillhandahåller en effektiv mekanism för att komma åt data som uppfyller vissa operatörspredikat. Vanligtvis är den användardefinierade indextypen en del av ett Oracle-alternativ, som Spatial-alternativet.

Till exempel tillåter SpatialIndextype effektiv sökning och hämtning av rumslig data som överlappar en given begränsningsruta.

Kassetten bestämmer parametrarna du kan ange för att skapa och underhålla domänindexet. På liknande sätt presenteras domänindexets prestanda och lagringsegenskaper i den specifika patrondokumentationen.

Hittills har vi täckt olika typer av index i Oracle med ett exempel, låt oss nu kontrollera hur man ändrar/släpper/återskapar dem

Hur man återskapar indexen/ombyggnadsindexet i Oracle

Vi kan använda ALTER INDEX … REBUILD-satsen för att omorganisera eller komprimera ett befintligt index eller för att ändra dess lagringsegenskaper

REBUILD-satsen använder det befintliga indexet som grund för det nya.

ALTER INDEX … ÅTERBYGGNAD går vanligtvis snabbare än att släppa och återskapa ett index.

Den läser alla indexblock med hjälp av multi-block I/O och kasserar sedan grenblocken.

En ytterligare fördel med detta tillvägagångssätt är att det gamla indexet fortfarande är tillgängligt för frågor medan ombyggnaden pågår.

Alter index    rebuild;Alter index    rebuild  tablespace ;

Hur man skriver uttalanden som undviker att använda index

  • Du kan använda NO_INDEX-optimeringstipset för att ge CBO maximal flexibilitet samtidigt som du inte tillåter användningen av ett visst index.
  • Du kan använda FULLSTÄNDIG ledtråd för att tvinga optimeraren att välja en fullständig tabellsökning istället för en indexsökning.
  • Du kan använda tipsen INDEX, INDEX_COMBINE eller AND_EQUAL för att tvinga optimeraren att använda ett index eller en uppsättning listade index istället för ett annat.

Hur man samlar in statistik för index

Indexstatistik samlas in med hjälp av ANALYZE INDEX eller dbms_stats-satsen.

Tillgängliga alternativ är BERÄKNA/SKATTA STATISTIK eller VALIDERA STRUKTUR.

Från 10g och framåt, när indexet skapas, beräknas statistik automatiskt

När du använder valideringsstrukturen fyller Oracle i INDEX_STATS-vyn med statistik relaterad till det analyserade indexet. Statistiken innehåller antalet bladrader och block (LF_ROWS, LF_BLKS), antal grenrader och block (BR_ROWS, BR_BLKS), antal raderade bladrader (DEL_LF_ROWS), använt utrymme (USED_SPACE), antal distinkta nycklar (DISTINCT_KEYS) , etc. Denna statistik kan användas för att avgöra om  indexet ska byggas om eller inte

Hur beslutar Oracle om användningen av index?

Oracle bestämmer automatiskt om indexet ska användas av Optimizer-motorn.

Oracle bestämmer om ett index ska användas eller inte beroende på frågan.

Oracle kan förstå om användningen av ett index kommer att förbättra prestandan i den givna frågan. Om Oracle tror att användningen av ett index kommer att förbättra prestandan, kommer det att använda indexet, annars ignorerar det indexet.

Låt oss   förstå med det här exemplet

Vi har en tabell emp   som innehåller emp_name, salary, dept_no ,emp_no,date_of_joining och vi har ett index på emp_name

Fråga 1

välj * från emp  där emp_name ='John';

Ovanstående fråga kommer att använda indexet när vi försöker få information om en emp baserat på namnet.

Fråga 2

välj * från emp;

Ovanstående fråga kommer inte att använda indexet eftersom vi försöker hitta alla rader i tabellen och vi inte har where-satsen i frågan

Fråga 3

välj * från emp där dept_no =5;

Ovanstående fråga kommer inte att använda indexet eftersom where-satsen inte väljer kolumnen som har ett index

Fråga 4

välj * från emp där substr(emp_name,1,4) =’XYZW’;

Ovanstående fråga kommer inte att använda indexet eftersom where-satsen använder funktionen i kolumnen och vi har inte ett funktionellt index på emp_name

Hur skapar eller bygger man om indexet online?

Oracle brukade låsa tabellen som index skapas på under hela skapelseprocessen i äldre versioner. Detta gör tabellen otillgänglig för datamanipulation under skapandet av indexet.

Nu med 8i introducerade Oracle online-ombyggnad av indexet där Oracle inte låser tabellen som indexet byggs på.

Onlineindexering tillhandahålls genom sökordet ONLINE.

SKAPA   INDEX ON  (,...)PCTFREE TABLESPACE Online;Ändra index  bygga om online;
>

I grund och botten, med en online-ombyggnad, låser Oracle bordet i början och slutet av skapandet av indexet. Det tillåter transaktioner däremellan. Mekanismen har förbättrats ganska mycket med 11g och 12c

Vilka är nackdelarna med  indexen

Index ökar prestandan för en urvalsfråga, de kan också minska prestandan för datamanipulation.

Många index på en tabell kan bromsa INSERTS och DELETES drastiskt

Ju fler index som finns på bordet, desto längre tid tar det att infoga och ta bort.

På samma sätt kommer varje ändring av en indexerad kolumn att behöva en ändring av indexet.

Så vi måste välja index mycket noggrant och släppa de som inte används.

Även om det extra utrymmet som upptas av index också är ett övervägande, kanske det inte spelar så stor roll eftersom kostnaden för datalagring har minskat avsevärt.

Vad är oanvändbara index

Ett oanvändbart index ignoreras av optimeraren vid beslut om förklaringsplanen

Det underhålls inte heller av DML, dvs uppdatera, infoga, radera uppdaterar indexet

Det kan finnas flera orsaker till att indexet är i ett oanvändbart tillstånd. Du byggde om tabellen men byggde inte om indexet, då kommer indexet att vara i ett oanvändbart tillstånd. Ett annat skäl till att göra ett index oanvändbart är att förbättra bulklastprestandan. En annan anledning kan vara att optimeraren plockar upp fel index varje gång och tidpunkten är avgörande så du kan bestämma dig för att göra det oanvändbart

Ett oanvändbart index eller indexpartition måste byggas om, eller släppas och återskapas innan det kan användas. Trunkering av en tabell gör ett oanvändbart index giltigt.

Från och med Oracle Database 11g Release 2, när du gör ett befintligt index oanvändbart, tas dess indexsegment bort.

Funktionaliteten hos oanvändbara index beror på inställningen av SKIP_UNUSABLE_INDEXES-initieringsparametern.

När SKIP_UNUSABLE_INDEXES är TRUE (standard), då:

DML-satser mot tabellen fortsätter, men oanvändbara index upprätthålls inte.

DML-satser avslutas med ett fel om det finns några oanvändbara index som används för att upprätthålla begränsningen UNIQUE.

För icke-partitionerade index tar optimeraren inte hänsyn till några oanvändbara index när man skapar en åtkomstplan för SELECT-satser. Det enda undantaget är när ett index är explicit specificerat med INDEX()-tipset.

När SKIP_UNUSABLE_INDEXES är FALSK, då:

Om några oanvändbara index eller indexpartitioner finns, avslutas alla DML-satser som skulle få dessa index eller indexpartitioner att uppdateras med ett fel.

För SELECT-satser, om ett oanvändbart index eller oanvändbart indexpartition finns men optimeraren inte väljer att använda det för åtkomstplanen, fortsätter uttalandet. Men om optimeraren väljer att använda det oanvändbara indexet eller det oanvändbara indexpartitionen, avslutas satsen med ett fel.

Visningar av dataordbok på  Index

DBA_INDEXES ALL_INDEXES USER_INDEXES DBA-vyn beskriver index på alla tabeller i databasen. ALL-vyn beskriver index på alla tabeller som är tillgängliga för användaren. USER-vyn är begränsad till index som ägs av användaren. Vissa kolumner i dessa vyer innehåller statistik som genereras av paketet DBMS_STATS eller ANALYZE-satsen.
DBA_IND_COLUMNS ALL_IND_COLUMNS

USER_IND_COLUMNS

Dessa vyer beskriver kolumnerna med index i tabeller. Vissa kolumner i dessa vyer innehåller statistik som genereras av paketet DBMS_STATS eller ANALYZE-satsen.
DBA_IND_EXPRESSIONS ALL_IND_EXPRESSIONS

USER_IND_EXPRESSIONS

Dessa vyer beskriver uttrycken för funktionsbaserade index på tabeller.
DBA_IND_STATISTICS ALL_IND_STATISTICS

USER_IND_STATISTICS

Dessa vyer innehåller optimeringsstatistik för index.

hur man hittar index i en tabell

set pagesize 50000 verify off echo offcol tabellnamn head 'Table Name' format a20col index_name head 'Index Name' format a25col kolumn_name head 'Column Name' format a30break på tabellnamn på index_nameselect     tabellnamn, index_name, index_name, tableind_namefrom' ') ordning efter tabellnamn, index_namn, kolumn_position/

Hur man bestämmer indexstorlek

Storlek på INDEX välj segment_name,sum(bytes)/1024/1024/1024 som "SIZE in GB" från user_segments där segment_name='INDEX_NAME' grupperar efter segment_name;ELLERvälj ägare,segment_name,sum(bytes)/1024/1024/1024 som "SIZE in GB" från dba_segments där ägare='SCHEMA_NAME' och segment_name='INDEX_NAME' grupperar efter ägare, segment_name; Lista över storlek på alla INDEX för en ANVÄNDARE välj segment_name,sum(bytes)/1024/1024/1024 som "SIZE in GB" från user_segments där segment_type='INDEX' gruppera efter segment_name ordning efter "SIZE in GB" desc;ELLERvälj ägare,segment_name,sum(bytes)/1024 /1024/1024 som "SIZE i GB" från dba_segments där ägare='SCHEMA_NAME' och segment_type='INDEX' grupperar efter ägare, segment_name ordning efter "SIZE i GB" desc;Summa av storlekar för alla index välj ägare,sum(bytes)/1024/1024/1024 som "SIZE i GB" från dba_segments där owner='SCHEMA_NAME' och segment_type='INDEX' grupperar efter ägare;

Hur man bestämmer indexet  definition

set long 4000select dbms_metadata.get_ddl('INDEX','',' 

Hur man bestämmer indexstatistiken

set pages 250set linesize 100set verify offcol table_name format a24 heading 'TABELL NAME'col index_name format a23 heading 'INDEX NAME'col u format a1 heading 'U'col bleel format 0 heading 'BL'col leaf_blocks format 999990 heading 'LEAF |BLOCKS'col distinct_keys format 9999990 heading 'DISTINCT|KEYS'col avg_leaf_blocks_per_key format 9999990 heading 'LEAF|BLKS|/KEY'col avg_data_blocks_per_key format 9999990 heading on 'DATA_name' 'UNIQUE', 'U', null ) u,blevel, leaf_blocks, distinct_keys,avg_leaf_blocks_per_key, avg_data_blocks_per_keyfrom sys.dba_indexeswhere table_owner like upper('&owner') and table_name like upper('&table_name, index_name; /pre> 

 Relaterade artiklar

externa tabeller i Oracle :Kolla in det här inlägget för information om användningen av de externa tabellerna i Oracle med ett exempel, hur man skapar en extern tabell, hur man använder den
Oracle Skapa tabell :Tabeller är den grundläggande enheten för data lagring i en Oracle-databas. vi tar upp hur man använder Oracle create table-kommandot för att skapa en tabell med en främmande nyckel /primärnyckel
oracle create tablespace-sats:Denna artikel om hur man skapar tabellutrymme i Oracle, olika egenskaper associerade med det och olika skapa tabellutrymmessatser
Hitta indexstatus och tilldelade kolumner för en tabell
Virtuellt index i Oracle:Vad är Virtual Index i Oracle? Användningar, begränsningar, fördelar och hur man använder för att kontrollera för att förklara plan i Oracle-databas, Hidden parameter _USE_NOSEGMENT_INDEXES
Oracle Index-klustringsfaktor:Hur Oracle Index-klustringsfaktor beräknas och hur det påverkar förklara-planen
Oracle-partition Index :Förstå Oracle-partitionsindex, Vad är Global Non-partitioned Indexes?, Vad är lokala prefixindex, non-prefixed local index

Rekommenderade kurser

Här är den trevliga Udemy-kursen för Oracle SQL
Oracle-Sql-Steg-för-steg :Den här kursen täcker grundläggande sql, går med, skapar tabeller och ändrar dess struktur, Skapa vy, Union, Union -allt och mycket annat . En bra kurs och måste-kurs för SQL-startare
The Complete Oracle SQL Certification Course :Det här är en bra kurs för alla som vill vara redo för SQL-utvecklare. En trevlig förklarad kurs
Oracle SQL Developer:Essentials, Tips and Tricks :Oracle Sql-utvecklarverktyget används av många utvecklare. Den här kursen ger oss tricks och lektioner om hur man effektivt använder den och blir en produktiv SQL-utvecklare
Oracle SQL Performance Tuning Masterclass 2020 :Prestandajustering är en av de kritiska och mest eftertraktade färdigheterna. Det här är en bra kurs för att lära dig mer om det och börja göra sql prestandajustering


  1. Minimal loggning med INSERT...SELECT in heap-tabeller

  2. Oracle:Vad gör `(+)` i en WHERE-sats?

  3. Finns det några nackdelar med att alltid använda nvarchar(MAX)?

  4. Boken "PostgreSQL 9.0 High Performance" är ute