SQL Server 2005 de verwerking van grote data



Grote omvang van de database is vaak honderden GB, en soms zelfs gebruik maken van de tbc-berekening. De single-tafel gegevens vaak bereiken miljoenen records, en registreert het aantal zal groeien in de tijd. Dit is niet alleen de efficiëntie van de database beïnvloedt, database onderhoud verhoogt ook de moeilijkheid. In aanvulling op het bedrag van de gegevens tafel, toegang tot de verschillende patronen op de tafel kan ook gevolgen hebben voor de prestaties en beschikbaarheid. Deze problemen kunnen redelijk grote tafel gebied zijn sterk verbeterd worden. Wanneer de tabel en de index erg groot wordt, de data partitie kan worden onderverdeeld in kleinere, meer hanteerbare delen om de efficiëntie van het systeem te verbeteren. Als er meerdere CPU of meerdere disk subsystemen, kun je betere prestaties in de parallel lopende acties. Dus, om de grote tafel te maken met grote hoeveelheid gegevens die een zeer efficiënte manier partitie. In deze paper wordt een concreet voorbeeld van hoe het maken en wijzigen van de partitietabel, en hoe de partitietabel te bekijken.

1, SQL Server 2005

SQL Server 2005 is Microsoft de lancering van SQL Server 2000 na een tussenperiode van vijf jaar na de lancering van een database platform, de relationele database-engine voor data-en gestructureerde data naar een meer veilige en betrouwbare opslag mogelijkheden te bieden, stelt gebruikers in staat op te bouwen en te beheren het bedrijfsleven, een hoge beschikbaarheid en hoge prestaties data-applicaties. Bovendien, SQL Server 2005 combineert de analyse, rapportage, integratie, en de kennisgevingen. Dit stelt bedrijven in staat op te bouwen en kosten-effectieve BI-oplossingen inzetten om het team te helpen door middel van de scorecard, Dashboard, Web Services en mobiele data-applicaties op alle gebieden van het bedrijfsleven. Zowel de ontwikkelaars, database administrators, informatie werknemers, of beleidsmakers, kan SQL Server 2005 bieden de innovatieve oplossingen en meer van de voordelen van de gegevens te krijgen.

Het brengt nieuwe functies, zoals T-SQL verbeteringen, data-partitie, service agents en met. Net Framework is integratie in de beheersbaarheid, beschikbaarheid, schaalbaarheid en beveiliging, en andere aspecten .

2, tabel partitie realisatie methode

Tabel partitie verdeeld in horizontale en verticale partitie partitie. Horizontale partitietabel in meerdere tabellen. Elke tabel bevat hetzelfde aantal kolommen, maar minder rijen. Bijvoorbeeld, een multi-miljard-rij-tabel met het niveau van de partitie in 12 tabellen, kleine tafel, zei een maand de gegevens binnen een bepaald jaar. Een bepaalde maand van gegevens moeten enige verwijzing naar de overeenkomstige maand van de query tabel. De verticale partitie gezogen meer dan de oorspronkelijke tabel in de tabel bevat enkel minder kolommen. Bestemmingsplan wijkniveau is de meest voorkomende manier om dit te presenteren aan het niveau van het district specifieke realisatie.

Horizontale partitie veel gebruikte methode is gebaseerd op het gebruik van de gegevens periode en het niveau van de partitie. Bijvoorbeeld, is dit bijvoorbeeld een bericht stuurt log bevat het meest recente jaar van de gegevens, maar alleen op gezette tijden te bezoeken dit kwartaal gegevens. In dit geval, overweeg dan de gegevens in vier regio's, elk bevat slechts een kwart van de gegevens.

2.1, maak een bestand groep

De oprichting van de partitietabel eerst een bestand groep maken en meerdere bestanden groepen is vooral een goede I / O evenwicht. Onder normale omstandigheden worden de bestands-nummer van de beste groep van hetzelfde nummer met het gebied, en deze groepen zich meestal in een ander bestand op de schijf. Elk bestand groep kan vormen door een of meer bestanden, elke partitie moet worden toegewezen aan een bestand groep. Een bestand groep kan worden gebruikt door meerdere partities. Met het oog op een beter beheer van gegevens (bijvoorbeeld, om meer nauwkeurige controle back-up te verkrijgen), op de partitie tabel moet worden ontworpen, zodat alleen relevante gegevens, of een logische groepering van gegevens in hetzelfde bestand groep. Gebruik ALTER DATABASE, voeg het logisch bestand groepsnaam:

ALTER DATABASE [DeanDB] ADD FILEGROUP [FG1]

DeanDB voor de database naam, FG1 bestand groepsnaam. Maak een bestand met de groep, gebruik dan ALTER DATABASE om bestanden toe te voegen aan het dossier groep:

ALTER DATABASE [DeanDB] Add File (NAAM = N'FG1 ', filename = N'C: DeanDataFG1.ndf', SIZE = 3072KB, TO FILEGROWTH = 1024KB) FILEGROUP [FG1]

De oprichting van een vergelijkbare groep van vier papieren en documenten en het opslaan van gegevens voor elk bestand op verschillende schijf.

2.2, een partitie maken functie

Maak partitietabel partitie functie moet worden bepaald mechanisme, de standaard partitietabel partitie functie wordt bepaald door. Maak een data-partitie functie heeft RANGE "LEFT | / RIGHT" twee opties. Namens elk van welke kant van de grens waarde in het lokaal. Er zijn bijvoorbeeld vier partities, dan is de definitie van de drie grenspunt waarde, en geef elke waarde is de eerste partitie op de grens (links) of een tweede partitie van de ondergrens (rechts). Code:

Partitie maken FUNCTION [SendSMSPF] (datetime) AS producten geschikt voor VALUES ('20070401 ', '20070701', '20071001 ')

2.3, een partitie maken regeling

Maak partitie functie, moet worden geassocieerd met het partitieschema om een document te wijzen aan een specifieke groep partitie. Is het definiëren van de daadwerkelijke opslag van gegevens media en de correspondentie tussen datablokken. Meerdere gegevens tabel kan dezelfde data-partitie functie, over het algemeen niet dezelfde gegevens partitieschema. Door verschillende partitieschema, maken gebruik van dezelfde partitie functie, de verschillende gegevenstabellen hebben dezelfde geografische omstandigheden, maar opgeslagen in verschillende media. Maak een partitie programma code is als volgt:

CREATE partitieschema [SendSMSPS] als partitie [SendSMSPF] AAN ([FG1], [FG2], [FG3], [FG4])

2.4, maak een partitie tabel

De oprichting van een goede partitie functie en partitie-indeling, kunt u een partitietabel. Partitietabel partitie en partitie toetsen door het definiëren van het bijbehorende programma. Plaats de plaat, SQL Server key gebaseerd op de andere partitie, partitie functie wordt bepaald door de gegevens in de juiste partitie. Dus de partitie functie, partitieschema en partitietabel door het combineren van de drie. De code om de partitie tabel is als volgt:

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

2.5, bekijk de partitietabel informatie

Systeem draait al enige tijd of de vorige gegevens in de partitietabel, moeten we specifieke gegevens bewaaromstandigheden, dat wil zeggen het aantal records voor elk district de toegang tot deze registers in dat gebied en dus op de toegang. $ Partition.SendSMSPF we kunnen zien, de code is als volgt:

Selecteer $ partition.SendSMSPF (o.SendDate) AS [partitie nummer], min (o.SendDate) AS [Min SendDate], max (o.SendDate) AS [Max SendDate], count (*) AS [rijen in Partition] VAN AS dbo.SendSMSLog oGROUP door $ partition.SendSMSPF (o.SendDate) ORDER BY [partitie-nummer]

Bij de uitvoering van het bovenstaande script in Query Analyzer, de resultaten weergegeven in Figuur 1:






Figuur 1: De partitietabel informatie

2.6 Onderhoud Division

Partitie toe te voegen partitie onderhoud van de belangrijkste ontwerpen, te verminderen, samenvoegen en converteren van partities. Door Alter partitiefunctie optie SPLIT, samenvoegen en ALTER TABLE schakelaar optie te bereiken. SPLIT zal meer toenemen dan een zone, maar zal Megre combineren of vermindering van de partitie, SWITCH is de conversie tussen de logische partities in de groep.

3, prestatievergelijking

Onze gegevens over 26,5 miljoen, ongeveer 4G geheugenruimte in beslag genomen door het vergelijken van de prestaties van single-table testomgeving IBM365, CPU Xeon 2.7G * 2, geheugen, 16G, HDD 136g * 2, het systeem platform voor de Windows 2003 SP1 + SQL Server 2005 SP1 . De resultaten in tabel 1:

Tabel 1: Prestatie Vergelijking van partitie en niet partitietabel (eenheid: MS)

Testmateriaal partitie is niet partitie

11654661466

21333

32014061546

41714061000

Beschrijving:

1, afhankelijk van de tijd een dag registreert de bestede tijd ophalen

2, een record in de tijd

3, afhankelijk van de tijd een dag Noteer de tijd genomen om te verwijderen

4, statistische tijd is het aantal records per maand

Zoals blijkt uit tabel 1, om op de partitietabel partitietabel dan niet sneller, omdat de werking van de partitietabel met behulp van de CPU en I / O-, parallelle operatie, de hoeveelheid gegevens die gegevens op te halen zijn ook kleinere, locatie kortere tijd in beslag gegevens.

4 Conclusie

Van de massale verwerking van gegevens is een hoofdpijn. Scheiding van de technologie is Suoyou ontwerpers eerste overweging, ongeacht de toepassing functie is om aparte geïsoleerde Shuju toegang, als de planning om een redelijk zijn, kan zeer effectief zijn in Jiejue Da tabel met gegevens van de operationele efficiëntie en lagere onderhoudskosten Gaodeng probleem. SQL Server 2005 bevat de nieuwe partitie tabel kunt u partitie de gegevens redelijk, wanneer de gebruiker toegang tot sommige gegevens, SQL Server engine kunnen de fysieke opslag van de gegevens te optimaliseren om de beste uitvoering van het programma, dat niet is naald in een hooiberg te vinden .