SQL Server 2005 med behandling af massive data



Stor størrelse af databasen er ofte hundredvis af GB, og nogle gange endda bruge den TB beregning. Den single-table data ofte nå ud til millioner af plader, og registrerer antallet vil vokse med tiden. Dette er ikke kun påvirker effektiviteten af databasen, database vedligeholdelse øger også vanskeligheder. Ud over den mængde data, tabellen, de forskellige adgang mønstre på bordet kan også påvirke ydelse og tilgængelighed. Disse problemer kan være rimeligt på et stort bord område er væsentligt forbedret. Når tabeller og indekser blive meget stor, opdele data kan opdeles i mindre, mere håndterbare dele forbedre effektiviteten af systemet. Hvis der er flere CPU eller flere disk delsystemer, kan du få bedre resultater i parallel drift. Så at opdele det store bord til at håndtere enorme mængder data en meget effektiv måde. I dette papir. Et konkret eksempel på, hvordan man skaber og ændre partitionstabellen, og hvordan du får vist partitionstabellen

1, SQL Server 2005

SQL Server 2005 er Microsofts lancering af SQL Server 2000 efter et interval på fem år efter lanceringen af en database platform til sin relationelle database motor for data og strukturerede data giver et mere sikkert og pålideligt opbevaring kapaciteter, giver brugerne mulighed for at opbygge og administrere for forretning, høj tilgængelighed og høj ydeevne data applikationer. Derudover kombinerer SQL Server 2005 den analyse, rapportering, integration og anmeldelser. Dette giver virksomhederne mulighed for at opbygge og implementere omkostningseffektive BI løsninger for at hjælpe holdet igennem scorecard, Dashboard, Web Services og mobile data applikationer til alle forretningsområder. Begge udviklere, database administratorer, it-medarbejdere eller politikere, kan SQL Server 2005 giver innovative løsninger og få mere ud af fordelene ved data.

Det bringer nye funktioner, såsom T-SQL ekstraudstyr, data partition, service agenter og med. Net Framework's integration i administration, tilgængelighed, skalerbarhed og sikkerhedsforbedringer og andre aspekter .

2, tabel partition realisering metode

Tabel partition opdelt i vandrette partition og vertikale partition. Vandret partitionstabel i flere tabeller. Hver tabel indeholder det samme antal kolonner, men færre rækker. For eksempel sagde en multi-milliard-rækken tabel med niveauet for partition i 12 tabeller, der hver lille bord, en måneds data inden for et givet år. Eventuelle særlige måneder af data skal kun henvises til den tilsvarende måned forespørgslen bordet. Den lodrette partition suget mere end den oprindelige tabel i tabellen kun indeholder færre kolonner. Zoneinddeling distrikt niveau er den mest almindelige måde at præsentere dette niveau distriktet specifikke realisering.

Vandret partition almindeligt anvendte metode er baseret på anvendelse af data periode og niveauet for partition. For eksempel sender dette eksempel en besked log indeholder de seneste år af data, men kun periodevis besøge dette kvartal data. I dette tilfælde undersøges, hvilke oplysninger i fire regioner, hver indeholder kun en fjerdedel af data.

2,1, skal du oprette en fil gruppe

Oprettelsen af partitionstabel først oprette en fil gruppe, og oprette flere fil grupper er primært at få gode I / O balance. Under normale omstændigheder er journalnummeret på den bedste gruppe i samme nummer med området, og disse grupper normalt placeret i en anden fil på disken. Hver fil gruppe kan danne af en eller flere filer, skal hver partition skal kortlægges til en fil gruppe. En fil gruppe kan bruges af flere partitioner. For bedre at håndtere data (for eksempel, for at få mere nøjagtige backup kontrol), om partitionstabel bør udformes, så kun relevante data eller logisk gruppering af data i samme fil gruppe. Brug ALTER DATABASE, skal du tilføje det logiske fil gruppens navn:

ALTER DATABASE [DeanDB] ADD FILEGROUP [FG1]

DeanDB for databasen navn, FG1 fil gruppens navn. Opret en fil gruppe, skal du bruge ALTER DATABASE at tilføje filer til filen gruppe:

ALTER DATABASE [DeanDB] ADD FILE (NAME = N'FG1 ', FILNAVN = N'C: DeanDataFG1.ndf', size = 3072KB, TO FILEGROWTH = 1024KB) FILEGROUP [FG1]

Oprettelsen af en lignende gruppe på fire papirer og dokumenter samt til at gemme data for hver fil på forskellige diskdrev.

2,2, skal du oprette en partition funktion

Opret partitionstabel partition funktion skal bestemmes mekanisme, er standarden partitionstabel partition funktion bestemmes af. Opret en data partition funktion har RANGE "LEFT | / RIGHT" to muligheder. På vegne af hver af hvilken side af grænsen værdi i det lokale. For eksempel er der fire partitioner, så definitionen af de tre grænsepost værdi, og angiver hver enkelt værdi er den første partition på grænsen (LEFT) eller en anden partition på den nedre grænse (til højre). Code:

Partitioner FUNCTION [SendSMSPF] (datetime) AS RANGE HØJRE for værdier ('20070401 ', '20070701', '20071001 ')

2,3, skal du oprette en partition ordning

Opret partition funktion, skal den være forbundet med at opdele ordningen partition et dokument peger på en bestemt gruppe. Er at definere de faktiske opbevaring af data medier og korrespondancen mellem data blokke. Flere datatabel kan dele de samme data partition funktion, generelt ikke har de samme data partitioneringsskema. Ved andet partitioneringsskema, samme partition funktion, de forskellige datatabeller brug, har de samme geografiske forhold, men gemt i forskellige medier. Opret en partition program kode er som følger:

CREATE partitionsskema [SendSMSPS] AS PARTITION [SendSMSPF] TO ([FG1] [FG2] [FG3] [FG4])

2,4, skal du oprette en partitionstabel

Oprettelsen af en god partition funktion og partitionsskema, kan du oprette en partitionstabel. Partitionstabel partition nøgler og partition ved at definere det tilknyttede program. Indsæt record, SERVER SQL fordelingsnøgle baseret på de forskellige partition, er partition funktion defineret af data i den relevante partition. Således partition funktion, partitionsskema og partitionstabellen ved at kombinere de tre. Koden til at skabe partitionstabellen er som følger:

CREATE TABLE SendSMSLog ([ID] [int] IDENTITET (1,1) NOT NULL, [IDNum] [nvarchar] (50) NULL, [SendContent] [tekst] NULL [SendDate] [datetime] NOT NULL,) ON SendSMSPS ( SendDate)

2,5, se partitionstabel oplysninger

System, der kører i et stykke tid eller tidligere data i partitionstabel, er vi nødt til at se specifikke data opbevaringsforhold, dvs antallet af registreringer for hver distrikt til adgang til disse optegnelser adgang i det område, og så videre. $ Partition.SendSMSPF vi kan, for at se, at koden er som følger:

SELECT $ partition.SendSMSPF (o.SendDate) AS [Partition Antal] min (o.SendDate) AS [Min SendDate], max (o.SendDate) AS [Max SendDate], greve (*) AS [rækker i Partition] FRA dbo.SendSMSLog AS oGROUP BY $ partition.SendSMSPF (o.SendDate) ORDER BY [Partition Antal]

I forbindelse med gennemførelsen af ovennævnte script i Query Analyzer, resultaterne vist i figur 1:






Figur 1: partitionstabel oplysninger

2,6 Vedligeholdelse Division

Partition tilføje partition vedligeholdelse af de vigtigste design, reducere, fusionere og konvertere partitioner. Ved ALTER PARTITION FUNCTION mulighed SPLIT, MERGE og ALTER TABLE SWITCH mulighed for at opnå. SPLIT vil stige mere end én zone, men MEGRE vil kombinere eller reducere partition, SWITCH er konverteringen mellem de logiske partitioner i gruppen.

3, performance sammenligning

Vores data om 26.500 tusind, om 4G hukommelse besat ved at sammenligne resultaterne af single-table test miljø IBM365, CPU Xeon 2.7G * 2, hukommelse, 16G, HDD 136 g * 2, det system platform for Windows 2003 SP1 + SQL Server 2005 SP1 . Resultaterne i tabel 1:

Tabel 1: Performance Sammenligning af partition og ikke partitionstabel (enhed: ms)

Test elementet partition er ikke partition

11654661466

21333

32014061546

41714061000

Beskrivelse:

1, i henhold til gang en døgnpost den tid hente

2, en enkelt post i den tid

3, i henhold til den gang en døgnpost den tid, det tager at slette

4, statistiske gang antallet af registreringer per måned

Som det fremgår af tabel 1, til at køre på partitionstabel partitionstabel end ikke hurtigere, fordi driften af partitionstabellen ved hjælp af CPU og I / O, parallel drift, mængden af data til at hente data er også mindre, beliggenhed kortere tidskrævende data.

4 Konklusion

Af de massive databehandling har været en hovedpine. Separation teknologi er den første behandling af alle designere, om det er den adskillelse af ansøgningen funktionalitet eller en separat dataadgang, hvis at være et rimeligt plan kan være en meget effektiv løsning til store datatabeller, og omkostninger til vedligeholdelse af lav effektivitet sådanne problemer. SQL Server 2005 indeholder den nye partitionstabel, kan du partitionere data rimelige, når brugeren besøger, når en del af de data, SQL Server motor kan optimere data Shiti butikken for at finde en optimal gennemførelse af programmet, hvilket ikke er nål i en høstak .