Av massiv SQL Server 2005 Data Processing



Stora databasens storlek är ofta flera hundra GB, och ibland även använda TB beräkningen. Den enda tabelldata nå ofta miljontals skivor, och registrerar antalet kommer att växa med tiden. Detta påverkar inte bara effektiviteten av databasen, underhålla databasen ökar också svårigheter. Förutom att mängden data bordet, olika tillgång mönster på bordet kan också påverka prestanda och tillgänglighet. Dessa problem kan vara rimlig på ett stort bord område är mycket bättre. När tabeller och index bli mycket stora, dela upp data kan delas in i mindre, mer hanterbara delar effektivisera systemet. Om det finns flera CPU eller flera delsystem disk, kan du få bättre prestanda i parallella insatser. Så, för att partitionera det stora bordet för att hantera stora mängder data på ett mycket effektivt sätt. I detta papper, ett konkret exempel på hur man kan skapa och ändra partitionstabellen och hur för att visa partitionstabellen.

1, SQL Server 2005

SQL Server 2005 är Microsofts lansering av SQL Server 2000 efter ett intervall på fem år efter lanseringen av en databas plattform, dess relationsdatabas motor för data och strukturerade data ger en mer säker och pålitlig lagringsmöjligheter, kan användare bygga och förvalta för näringsliv, hög tillgänglighet och hög prestanda data applikationer. Dessutom kombinerar SQL Server 2005 för analys, rapportering, integration och anmälningar. Detta gör det möjligt för företag att bygga och driftsätta kostnadseffektiva BI-lösningar för att hjälpa laget genom styrkort, Dashboard, Web Services och mobila data applikationer till alla delar av verksamheten. Både utvecklare, databasadministratörer, arbetare information eller beslutsfattare, kan SQL Server 2005 ger innovativa lösningar och för att få mer från de fördelar som uppgifterna.

Det ger nya funktioner, som T-SQL förbättringar, datapartition, agenter service och med. Net Framework integration i det hanterbarhet, tillgänglighet, skalbarhet och säkerhetsförbättringar, och andra aspekter .

2, tabell partition realisering metod

Tabell partition uppdelad i horisontella delning och vertikal delning. Övergripande partitionstabell i flera tabeller. Varje tabell innehåller samma antal kolumner, men färre rader. Till exempel sade en flera miljarder raden tabell som innehåller nivån på partitionen till 12 bord, varje litet bord, en månads uppgifter inom ett visst år. Någon särskild månad av uppgifter behöver bara hänvisa till motsvarande månad frågan tabellen. Den vertikala partition sög mer än den ursprungliga tabellen i tabellen endast innehåller färre kolumner. Zonindelning distriktsnivå är det vanligaste sättet att presentera detta till samma nivå som distriktet särskilda förverkligande.

Övergripande partition ofta använda metoden bygger på användning av data perioden och nivån på partitionen. Till exempel kan man skicka det här exemplet ett meddelande loggen innehåller det senaste året på data, men endast regelbundet besöka denna kvartalet. I detta fall, anser att uppgifterna i fyra regioner, innehåller endast en fjärdedel av data.

2,1, skapa en fil grupp

Inrättandet av partitionstabellen först skapa en fil grupp och skapa flera filer grupper är främst att få bra I / O-balans. Under normala förhållanden är registreringsnumret på den bästa gruppen av samma nummer med området, och dessa grupper som vanligtvis finns i en annan fil på disken. Varje fil grupp kan bilda en eller flera filer måste varje partition mappas till en fil grupp. En fil grupp kan användas av flera partitioner. För att bättre hantera data (till exempel för att få bättre backup kontroll), om partitionstabellen bör utformas så att endast nödvändiga uppgifter, eller logisk gruppering av data i samma fil grupp. Använd ALTER DATABASE, lägg det logiska namnet filen grupp:

ALTER DATABASE [DeanDB] ADD filgrupp [FG1]

DeanDB för databasen namn, FG1 filen gruppnamn. Skapa en fil grupp, använd sedan ALTER DATABASE att lägga till filer filen grupp:

ALTER DATABASE [DeanDB] Lägg till fil (NAME = N'FG1 ", filename = N'C: DeanDataFG1.ndf", SIZE = 3072KB, TO FILEGROWTH = 1024KB) filgrupp [FG1]

Inrättandet av en liknande grupp av fyra dokument och handlingar och att lagra uppgifter för varje fil på annan enhet.

2,2, skapa en partition funktion

Skapa partitionstabell partitionsfunktionen måste bestämmas mekanism, är det vanliga partitionstabellen partitionsfunktionen bestäms av. Skapa ett datapartition funktion har RANGE "vänster | / RIGHT" två alternativ. För vart och ett av vilken sida av gränsen värdet i det lokala. Till exempel finns det fyra partitioner, då definitionen av tre gränsstation värde och ange varje värde är den första partitionen på gränsen (vänster) och en andra partition på den nedre gränsen (höger). Kod:

SKAPA partitionsfunktionen [SendSMSPF] (datetime) AS RANGE RIGHT FOR VALUES ('20070401 ", '20070701", '20071001)

2,3, skapa en partition system

Skapa partition fungera måste den knytas till partitionsschema att partitionera ett dokument som pekar på en specifik grupp. Är att fastställa de faktiska lagring av datamedia, och överensstämmelse mellan datablock. Flera datatabellen kan dela samma funktion datapartition, i allmänhet inte har samma system data partitionering. Genom olika partitionsschema, använder samma partition funktion, de olika tabeller har samma geografiska förutsättningar, men som lagras i olika media. Skapa en partition programkod är följande:

SKAPA partitionsplan [SendSMSPS] som partition [SendSMSPF] till ([FG1], [FG2], [FG3], [FG4])

2,4, skapa en partitionstabell

Inrättandet av en god partitionsfunktionen och partitionsplan kan du skapa en partitionstabell. Partitionstabell partition nycklar och partition genom att definiera det associerade programmet. Sätt skivan, SQL Server nyckel som bygger på annan partition är partitionsfunktionen definieras av uppgifter i lämplig partition. Således partitionsfunktionen, partitionsplan och partitionstabell genom att kombinera de tre. Koden för att skapa partitionstabellen är följande:

CREATE TABLE SendSMSLog ([id] [int] IDENTITET (1,1) NOT NULL, [IDNum] [nvarchar] (50) NULL, [SendContent] [text] NULL [SendDate] [datetime] NOT NULL,) på SendSMSPS ( SendDate)

2,5, visa partitionstabellen information

System igång ett tag eller föregående data i partitionstabell, behöver vi se data särskilda lagringsförhållanden, det vill säga antalet poster för varje distrikt att få tillgång till dessa register tillgång i området och så vidare. $ Partition.SendSMSPF vi kan för att se, koden som följer:

SELECT $ partition.SendSMSPF (o.SendDate) AS [partition nummer], min (o.SendDate) AS [Min SendDate], max (o.SendDate) AS [Max SendDate], COUNT (*) AS [rader i Partition] FRÅN dbo.SendSMSLog AS oGROUP av $ partition.SendSMSPF (o.SendDate) ORDER BY [partitionsnumret]

Vid genomförandet av ovanstående skript i Query Analyzer, resultaten visas i figur 1:






Bild 1: partitionstabellen information

2,6 Underhåll Division

Delning lägga partition underhålla de viktigaste design, minska, gå ihop och konvertera partitioner. Genom FÖRÄNDRA partitionsfunktionen alternativ Splittra, Gå ihop och ALTER TABLE SWITCH möjlighet att uppnå. SPLIT kommer att öka mer än en zon, men MEGRE kommer att kombinera eller minska partitionen är SWITCH omvandlingen mellan logiska partitioner i gruppen.

3, prestanda jämförelse

Våra uppgifter om 26.500 tusen, om 4G minne utrymme genom att jämföra resultatet för single-table IBM365 testmiljö, CPU Xeon 2.7G * 2, minne, 16G, HDD 136G * 2, systemet plattform för Windows 2003 SP1 + SQL Server 2005 SP1 . Resultaten i tabell 1:

Tabell 1: Prestanda Jämförelse av partition och inte partitionstabellen (enhet: ms)

Testartikel partition är inte partition

11654661466

21333

32014061546

41714061000

Beskrivning:

1, beroende på när en dagspost den tid hämtar

2, en enskild post i tid

3, beroende på när en dagspost den tid det tar att ta bort

4, statistiska tid antalet poster per månad

Som framgår av tabell 1, att verka på partitionstabellen partitionstabellen än inte snabbare, då drift av partitionstabellen med hjälp av CPU och I / O, parallellt läge, mängden data att hämta data finns också mindre, plats kortare tidskrävande uppgifter.

4 Slutsats

Av den massiva databehandling har en huvudvärk. Teknik som separerar är det första genomgång av alla designers, om det är separationen av ansökan dataåtkomst funktioner eller separation, om att vara en rimlig plan kan vara en mycket effektiv lösning för stora datatabeller, och underhåll av låg effektivitet sådana problem. SQL Server 2005 innehåller den nya partitionstabellen kan du partitionera data rimligt, när användaren tillgång till vissa uppgifter, SQL Server motor kan optimera fysiska lagringen av data för att hitta den bästa genomförandet av det program, som inte är nål i en höstack .