Große Größe der Datenbank ist oft Hunderte von GB, und manchmal sogar mit dem TB Berechnung. Die Single-Table-Daten erreichen oft Millionen von Datensätzen und zeichnet die Anzahl im Laufe der Zeit wachsen wird. Dies beeinträchtigt nicht nur die Effizienz der Datenbank, Datenbank-Wartung erhöht auch den Schwierigkeitsgrad. Neben der Höhe der Datentabelle, die verschiedenen Muster Zugriff auf die Tabelle kann auch Auswirkungen auf die Performance und Verfügbarkeit. Diese Probleme können auf einem großen Tisch Bereich angemessen sind erheblich verbessert. Wenn die Tabellen und Indizes sehr groß geworden, die Daten-Partition unterteilt werden können kleinere, besser verwaltbare Teile, um die Effizienz des Systems zu verbessern. Wenn es mehrere CPU oder mehrere Disk-Subsysteme sind, können Sie bessere Leistung in parallelen Operationen. Also, zu partitionieren, um den großen Tisch mit großen Datenmengen eine sehr effiziente Art und Weise umzugehen. In diesem Papier, ein konkretes Beispiel für das Erstellen und Bearbeiten der Partitionstabelle, und wie man die Partitionstabelle anzuzeigen.
1, SQL Server 2005
SQL Server 2005 ist Microsofts Start von SQL Server 2000 nach einem Intervall von fünf Jahren nach der Einführung einer Datenbank-Plattform, ihre relationale Datenbank-Engine für Daten und strukturierten Daten, um eine sichere und zuverlässige Speichermöglichkeiten bieten, ermöglicht es Benutzern, bauen und verwalten für Unternehmen, hohe Verfügbarkeit und hohe Performance-Daten-Anwendungen. Darüber hinaus verbindet die SQL Server 2005 Analyse, Reporting, Integration und Benachrichtigungen. Dies ermöglicht Unternehmen die Erstellung und Bereitstellung kostengünstige BI-Lösungen an das Team durch die Scorecard helfen, Dashboard, Web Services und mobile Daten-Anwendungen auf allen Gebieten des Wirtschaftsrechts. Beide Entwickler, Datenbankadministratoren, Information Worker, oder die politischen Entscheidungsträger, kann SQL Server 2005 bieten die innovativen Lösungen und mehr von den Vorteilen der Daten zu gewinnen.
Es bringt neue Features, wie z. B. T-SQL-Erweiterungen, Daten-Partition, Service-Agenten mit. Net Framework Integration in die Verwaltbarkeit, Verfügbarkeit, Skalierbarkeit und Verbesserungen an Sicherheit und andere Aspekte .
2, Tabelle Partition Realisierung Methode
Tabelle Partition in horizontale und vertikale Partition Partition unterteilt. Horizontal Partitionstabelle in mehreren Tabellen. Jedes Blatt enthält die gleiche Anzahl von Spalten, aber weniger Zeilen. Zum Beispiel, sagte ein Multi-Milliarden-row Tabelle mit der Ebene der Partition in 12 Tabellen, die jeweils ein kleiner Tisch, einen Monat die Daten in einem bestimmten Jahr. Jede bestimmten Monat von Daten benötigen nur Verweis auf den entsprechenden Monat des Abfrage-Tabelle. Die vertikale Teilung angesaugt mehr als die ursprüngliche Tabelle in die Tabelle enthält nur weniger Spalten. Zoning Bezirksebene ist der häufigste Weg, um diese auf die Ebene der konkreten Realisierung Bezirk präsentieren.
Horizontal-Partition üblicherweise Methode basiert auf der Verwendung der Daten Zeitraum und die Höhe der Partition verwendet wird. Zum Beispiel, diesem Beispiel eine Nachricht sendet log enthält das letzte Jahr von Daten, sondern nur regelmäßig besuchen, in diesem Quartal Daten. In diesem Fall prüfen die Daten in vier Regionen, jede enthält nur ein Viertel der Daten.
2.1, erstellen Sie eine Datei-Gruppe
Die Gründung der Partitionstabelle erstellen Sie zuerst eine Datei-Gruppe, und erstellen Sie mehrere Datei-Gruppen ist vor allem auf eine gute I / O Gleichgewicht zu bringen. Unter normalen Umständen sind die Aktenzeichen der besten Gruppe die gleiche Anzahl mit der Gegend, und diese Gruppen in der Regel in eine andere Datei auf dem Datenträger befinden. Jede Datei-Gruppe kann durch eine oder mehrere Dateien Form, jede Partition in eine Datei-Gruppe zugeordnet werden müssen. Eine Datei-Gruppe kann von mehreren Partitionen genutzt werden. Im Hinblick auf eine bessere Verwaltung von Daten (zum Beispiel, um genauere Kontrolle erlangen Backup), auf der Partitionstabelle sollte so gestaltet werden, so dass nur relevante Daten oder logische Gruppierung von Daten in der gleichen Datei-Gruppe. ALTER DATABASE verwenden, fügen Sie die logische Datei Gruppenname:
ALTER DATABASE [DeanDB] ADD FILEGROUP [FG1]
DeanDB für den Datenbank-Namen, FG1 Datei Namen der Gruppe. Erstellen Sie eine Datei-Gruppe, dann verwenden Sie ALTER DATABASE, um Dateien auf die Datei hinzuzufügen:
ALTER DATABASE [DeanDB] ADD FILE (NAME = N'FG1 "FILENAME = N'C: DeanDataFG1.ndf ', SIZE = 3072KB, TO = FILEGROWTH 1024KB) FILEGROUP [FG1]
Die Einrichtung einer ähnlichen Gruppe von vier Papiere, Schriftstücke und Daten für jede Datei auf anderes Laufwerk zu speichern.
2.2, erstellen Sie eine Partition-Funktion
Erstellen Partitionstabelle Zustandssumme muss Mechanismus festgelegt werden, die Standard-Partitionstabelle Zustandssumme wird bestimmt durch. Erstellen Sie eine Datenpartition Funktion Reichweite hat "LEFT | / RIGHT" zwei Optionen. Im Namen von denen jede Seite der Grenzwert in der lokalen. Zum Beispiel gibt es vier Partitionen, dann ist die Definition der drei Grenzpunkt Wert, und geben Sie jeden Wert ist die erste Partition auf der Grenze (links) oder eine zweite Partition auf der unteren Grenze (rechts). Code:
CREATE PARTITION FUNCTION [SendSMSPF] (datetime) AS RANGE RIGHT FOR VALUES ('20070401 ', '20070701', '20071001 ')
2.3, erstellen Sie ein Partitionsschema
Partition erstellen zu können, müssen sie mit dem Partitionierungs-Schema auf ein Dokument verweist auf eine bestimmte Gruppe Partition zugeordnet werden. Ist die tatsächliche Speicherung von Daten und Medien der Korrespondenz zwischen Datenblöcke zu definieren. Mehrere Datentabelle können die gleichen Daten-Partition-Funktion, in der Regel nicht die gleichen Daten Partitionierungsschema. Durch verschiedene Partitionierungsschema verwenden die gleiche Partition-Funktion, die verschiedenen Daten-Tabellen haben die gleiche geografische Bedingungen, aber in verschiedenen Medien gespeichert werden. Erstellen Sie eine Partition Programm-Code lautet wie folgt:
CREATE Partitionsschema [SendSMSPS als Partition [SendSMSPF] zu ([FG1]] [FG2], [FG3], [FG4])
2.4 Erstellen einer Partitionstabelle
Die Schaffung eines guten Zustandssumme und Partitionsschema, können Sie eine Partitionstabelle. Partitionstabelle Partition Partition Schlüssel und durch die Festlegung der zugehörigen Programm. Legen Sie den Datensatz, SQL Server-Schlüssel auf der Grundlage der anderen Partition, Partition-Funktion wird durch die Daten in die entsprechende Partition definiert. Die Partition-Funktion, Partitionsschema und der Partitionstabelle durch die Kombination der drei. Der Code, um die Partitionstabelle zu erstellen ist wie folgt:
CREATE TABLE SendSMSLog ([id] [int] IDENTITY (1,1) NOT NULL, [IDNUM] [nvarchar] (50) NULL, [SendContent] [text] NULL [SendDate] [datetime] NOT NULL,) auf SendSMSPS ( SendDate)
2.5, die Partitionstabelle anzusehen Informationen
System läuft seit einiger Zeit oder die vorherigen Daten in die Partitionstabelle, müssen wir bestimmte Daten Lagerungsbedingungen finden, das heißt, die Anzahl der Datensätze für jeden Bezirk Zugang zu diesen Aufzeichnungen in diesem Gebiet und so den Zugang. $ Partition.SendSMSPF wir können, um zu sehen, wird der Code wie folgt:
SELECT $ partition.SendSMSPF (o.SendDate) AS [Anzahl Partition] min (o.SendDate) AS [Min SendDate], Max (o.SendDate) AS [Max SendDate] count (*) AS [Zeilen in der Partition] FROM dbo.SendSMSLog AS oGROUP von $ partition.SendSMSPF (o.SendDate) ORDER BY [Partition Number]
Bei der Durchführung der oben genannten Skript in Query Analyzer, die Ergebnisse in Abbildung 1 dargestellt:
Abbildung 1: Die Partitionstabelle Informationen
2.6 Wartung Division
Partition Partition hinzufügen Wartung der wichtigsten Design, reduzieren, zusammenführen und Konvertieren von Partitionen. Mit ALTER PARTITION FUNCTION Option Split, Merge, und ALTER TABLE SWITCH-Option zu erreichen. SPLIT wird mehr als eine Zone zu erhöhen, sondern wird Megre kombinieren oder reduzieren Sie die Partition, ist SWITCH die Konvertierung zwischen den logischen Partitionen in der Gruppe.
3, Performance-Vergleich
Unsere Daten auf 26,5 Mio. Über 4G Speicherplatz durch den Vergleich der Leistung von Single-Table-Testumgebung IBM365, CPU Xeon 2,7 g * 2, Speicher, 16G, besetzten HDD 136g * 2, das System-Plattform für die Windows 2003 SP1 + SQL Server 2005 SP1 . Die Ergebnisse in Tabelle 1:
Tabelle 1: Vergleich der Performance-Partition und nicht Partitionstabelle (Einheit: ms)
Prüfgegenstand Partition nicht Partition
11654661466
21.333
32014061546
41714061000
Beschreibung:
1, nach der Zeit eines Tages notieren Sie die Zeit verbracht Abrufen
2, einen einzelnen Datensatz in die Zeit
3, nach der Zeit eines Tages notieren Sie die Zeit genommen, um zu löschen
4, statistische Zeit die Anzahl der Datensätze pro Monat
Wie aus Tabelle 1 ersichtlich, auf die Partitionstabelle Partitionstabelle als nicht schneller arbeiten, weil der Betrieb der Partitionstabelle mit der CPU und I / O, parallelen Betrieb, die Menge der Daten, um Daten abzurufen auch kleinere, Standort sind kürzere zeitaufwändige Daten.
4 Schlussfolgerung
Der massiven Datenverarbeitung hat Kopfschmerzen worden. Trenntechnik ist die erste Prüfung aller Designer des Problems wird das Programm Buguan Funktionen oder Trennung zur Trennung von Datenzugriff, Ruguo ein vernünftiger Plan, kann eine sehr effektive Lösung für große Datentabellen niedrigen Wirkungsgrad und hohe Weihuchengben Problem. SQL Server 2005 bietet die neue Partitionstabelle, können Sie Partition die Daten vernünftig, wenn der Benutzer den Zugriff auf bestimmte Daten, SQL Server Engine kann die physische Speicherung der Daten zu optimieren, um die beste Umsetzung des Programms, die nicht die Nadel im Heuhaufen finden .