Indholdsfortegnelse:
Video: Web Programming - Computer Science for Business Leaders 2016 2025
Alle de logiske strukturer, du vil se, er i databasens datafiler. Oracle 12cs logiske strukturer giver dig mulighed for at organisere dine data i håndterbare og godt logiske stykker.
Lad os undersøge forholdet mellem logiske og fysiske objekter. Pilen peger i retning af et til mange forhold.
Tablespaces i Oracle 12c
Tablespaces er det første niveau af logisk organisering af dit fysiske lager.
Hver 12c-database skal have følgende tablespaces:
-
SYSTEM: Gemmer de grundlæggende databaseobjekter, der bruges til at køre databasen selv.
-
SYSAUX: For objekter, der er hjælpefunktioner og ikke specifikt bundet til kerneegenskaberne i databasen.
-
UNDO: Gemmer de tilbagekaldede eller fortrydelses segmenter, der bruges til transaktionsgendannelse.
-
TEMP: Til midlertidig opbevaring.
Hver tablespace er ansvarlig for at organisere en eller flere datafiler. Typisk kan hver tablespace blive knyttet til en datafil, men da databasen vokser og dine filer bliver store, kan du beslutte at tilføje lager i form af flere datafiler.
Så hvad er næste skridt for at få din database til at køre? Du opretter nogle områder for at gemme dine data. Sig, at din database skal have salg, menneskelige ressourcer, regnskabsdata og historiske data. Du kan have følgende tablespaces:
-
SALES_DATA
-
SALES_INDEX
-
HR_DATA
-
HR_INDEX
-
ACCOUNTING_DATA
-
ACCOUNTING_INDEX
-
HISTORY_DATA
-
HISTORY_INDEX
Segmenter i Oracle 12c
Segmenter er den næste logiske opbevaringsstruktur efter tablespaces. Segmenter er objekter i databasen, der kræver fysisk opbevaring, og omfatter følgende:
-
Tabeller
-
Indekser
-
Materialiserede visninger
-
Partitioner
Disse objekteksempler er ikke < segmenter og gem ikke faktiske data: Procedurer
-
Synonymer
-
Sekvenser
-
Den sidstnævnte liste over objekter lever ikke i et tablespace med segmenter. De er stykker kode, der lever i systemets tablespace.
Når du opretter et segment, skal du angive, hvilket tablespace du vil have det til at være en del af. Dette hjælper med ydeevne.
Omfang i Oracle 12c
Omfang
er ligesom vækstringene af et træ. Når et segment vokser, får det et nyt omfang. Når du først opretter et bord til at gemme varer, får det sin første udstrækning. Når du indsætter data i den tabel, fylder det omfang. Når omfanget fyldes op, tager det en anden grad ud af bordrummet. Når du først opretter et tablespace, er det helt ledig plads. Når du begynder at oprette objekter, får det ledige rum tildelt segmenter i form af udløb. Dit gennemsnitlige tablespace består af brugt antal og ledig plads.
Når hele det ledige rum er fyldt, er datafilen uden for rummet. Det er, når dine DBA-færdigheder kommer ind, og du bestemmer, hvordan du får mere ledig plads til segmenterne til at fortsætte med at udvide.
Omfang er ikke nødvendigvis sammenhængende. Når du for eksempel opretter en elementstabel og indsætter de første 1, 000 elementer, kan den vokse og udvide flere gange. Nu kan dit segment bestå af fem udgaver. Men du opretter også et nyt bord.
Da hver tabel oprettes i et nyt tablespace, starter den i begyndelsen af datafilen. Når du har oprettet dit andet bord, må din første tabel muligvis udvides igen. Dens næste grad kommer efter anden udstrækning. I sidste ende vil alle objekter, der deler et tablespace, få deres udstrækning blandet.
Dette er ikke en dårlig ting. I år tidligere, før Oracle havde bedre algoritmer til opbevaring, brugte DBA'er meget af deres tid og indsats for at samle disse udgaver. Det hedder
fragmentering. Det er en ting fra fortiden. Må ikke suges ind! Bare lad det være. Oracle 12c er fuldt ud i stand til at styre sådanne situationer. Der er situationer, hvor du har flere datafiler i et tablespace. Hvis en tablespace har mere end en datafil, opretter tablespace automatisk udgaver i en runde-robin-måde på tværs af alle datafiler. Dette er en anden oracles ydeevnefunktion.
Sig du har et stort bord, der understøtter det meste af din ansøgning. Det lever i et tablespace lavet af fire datafiler. Efterhånden som tabellen udvider, tildeler Oracle omfangene på tværs af hver datafil som denne:
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 … og så videre
Dette På den måde kan Oracle udnytte dataspredningen på tværs af mange fysiske enheder, når brugerne får adgang til data. Det reducerer påstand om segmenter, der har en masse aktivitet.
Oracle-blokke i Oracle 12c
En
Oracle-blok er den mindste enhed, Oracle vil læse eller skrive til enhver tid. Oracle læser og skriver mere end en blok på én gang, men det er op til Oracle i disse dage. Du plejede at have mere direkte kontrol over, hvordan Oracle formåede at læse og skrive blokke, men nu er funktionaliteten automatisk indstillet. Du kan indstille det manuelt til en vis grad, men de fleste installationer overlades bedst til Oracle.
Oracle finder segmentet.
-
Oracle spørger segmentet, hvis der er noget rum.
-
Segmentet returnerer en blok, der ikke er fuld.
-
Rækken eller indeksindgangen tilføjes til den pågældende blok.
-
Oracle-blokke har også en fysisk modstykke, ligesom datafilerne gør. Oracle-blokke består af OS-blokke. Det er den formaterede størrelse af den mindste lagerenhed på enheden.