Innholdsfortegnelse:
Video: Suspense: The Lodger 2025
Alle de logiske strukturer som du ser, er i databasens datafiler. Oracle 12cs logiske strukturer lar deg organisere dataene dine i håndterbare og godt logiske stykker.
La oss undersøke forholdet mellom logiske og fysiske objekter. Pilen peker i retning av et til mange forhold.
Tabellrom i Oracle 12c
Tabellrom er det første nivået av logisk organisering av din fysiske lagring.
Hver 12c-database skal ha følgende tabellområder:
-
SYSTEM: Lagrer kjernedatabaseobjektene som brukes til å kjøre databasen selv.
-
SYSAUX: For objekter som er hjelpestoffer og ikke spesifikt knyttet til kjernefunksjonene i databasen.
-
UNDO: Lagrer tilbakestillings- eller tilbakestillingssegmentene som brukes til transaksjonsgjenoppretting.
-
TEMP: For midlertidig lagring.
Hver tabellplass er ansvarlig for å organisere en eller flere datafiler. Vanligvis kan hver tabellplass bli koblet til en datafil, men da databasen vokser og filene dine blir store, kan du bestemme deg for å legge til lagring i form av flere datafiler.
Så hva er neste skritt for å få databasen din oppe? Du lager noen områder for å lagre dataene dine. Si at databasen din skal ha salg, menneskelige ressurser, regnskapsdata og historiske data. Du kan ha følgende tabellområder:
-
SALES_DATA
-
SALES_INDEX
-
HR_DATA
-
HR_INDEX
-
ACCOUNTING_DATA
-
ACCOUNTING_INDEX
-
HISTORY_DATA
-
HISTORY_INDEX
Segmenter i Oracle 12c
Segmenter er den neste logiske lagringsstrukturen etter tabellplass. Segmenter er objekter i databasen som krever fysisk lagring og inkluderer følgende:
-
Tabeller
-
Indekser
-
Materialiserte visninger
-
Partisjoner
Disse objekteksemplene er ikke < segmenter og lagre ikke faktiske data: Prosedyrer
-
Synonymer
-
Sequences
-
Den sistnevnte listen over objekter lever ikke i et tabellområde med segmenter. De er kodestykker som lever i SYSTEM-tabellrommet.
Når du oppretter et segment, angi hvilket tabellområde du vil at det skal være en del av. Dette hjelper med ytelse.
Utvidelser i Oracle 12c
Extents
er som vekstringer av et tre. Når et segment vokser, blir det en ny grad. Når du først lager et bord for å lagre varer, får det sin første grad. Når du setter inn data i den tabellen, fyller den grad opp. Når omfanget fylles opp, griper det en annen grad fra tabellrommet. Når du først lager et tabellrom, er det all ledig plass. Når du begynner å lage objekter, blir den ledige plassen tilordnet segmenter i form av omfang. Din gjennomsnittlige tabellplass består av brukt omfang og ledig plass.
Når all ledig plass er fylt, er datafilen ikke tomt. Det er da DBA ferdighetene dine kommer inn, og du bestemmer deg for hvordan du får mer ledig plass til segmentene å fortsette å strekke seg.
Omfang er ikke nødvendigvis sammenhengende. For eksempel, når du oppretter en elementstabell og setter inn de første 1, 000 elementene, kan den vokse og utvide flere ganger. Nå kan segmentet bestå av fem utgaver. Men du lager også et nytt bord.
Da hvert bord er opprettet i et nytt tabellrom, starter det i begynnelsen av datafilen. Etter at du har opprettet ditt andre bord, kan det hende at din første tabell må utvides igjen. Dens neste grad kommer etter den andre utstrekningen. Til slutt vil alle objekter som deler en tabellplass, blandes sammen.
Dette er ikke en dårlig ting. I år tidligere, før Oracle hadde bedre algoritmer for lagring, brukte DBAs mye tid og innsats for å samle disse omfangene. Det ble kalt
fragmentering. Det er en ting fra fortiden. Ikke bli sugd inn! Bare la det være. Oracle 12c er fullt i stand til å håndtere slike situasjoner. Det finnes situasjoner der du har flere datafiler i et tabellområde. Hvis en tabellplass har mer enn en datafil, oppretter tabellrommet automatisk utgaver i en runde-robin-mote på tvers av alle datafiler. Dette er en annen Oracle-ytelsesfunksjon.
Si at du har ett stort bord som støtter det meste av søknaden din. Den lever i et tabellrom laget av fire datafiler. Etter hvert som tabellen strekker, allokerer Oracle omfangene over hver datafil som denne:
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 … og så videre
Dette På den måten kan Oracle utnytte dataspredningen over mange fysiske enheter når brukerne får tilgang til data. Det reduserer påstand om segmenter som har mye aktivitet.
Oracle-blokker i Oracle 12c
En
Oracle-blokk er den minste enheten Oracle vil lese eller skrive til enhver tid. Oracle leser og skriver vanligvis mer enn ett blokk på en gang, men det er opp til Oracle i disse dager. Du pleide å ha mer direkte kontroll over hvordan Oracle klarte å lese og skrive av blokker, men nå er funksjonaliteten automatisk innstilt. Du kan stille det manuelt til en viss grad, men de fleste installasjoner er best igjen for Oracle.
Oracle finner segmentet.
-
Oracle spør det segmentet hvis det er rom.
-
Segmentet returnerer en blokk som ikke er full.
-
Raden eller indeksoppføringen legges til den aktuelle blokk.
-
Oracle-blokkene har også en fysisk motstykke akkurat som datafilene gjør. Oracle-blokkene består av OS-blokker. Det er den formaterte størrelsen på den minste lagringsenheten på enheten.
