Datenkomprimierung konfigurieren - AWS Präskriptive Leitlinien

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Datenkomprimierung konfigurieren

Sie können die Tabellen und Indizes in EnterpriseOne Geschäftsdaten- und Steuertabellen mithilfe der Seiten- oder Zeilenkomprimierung komprimieren. Die meisten EnterpriseOne Workloads AWS weisen bei der Seitenkomprimierung die beste Leistung auf, aber extrem große Workloads (ein Vielfaches unkomprimierter Terabyte) schneiden bei der Zeilenkomprimierung möglicherweise besser ab. Eine ausführliche Erläuterung der Seiten- und Zeilenkomprimierung würde den Rahmen dieses Leitfadens sprengen. Dieser Abschnitt konzentriert sich hauptsächlich auf die Seitenkomprimierung.

Wenn Sie die Komprimierung für normale EnterpriseOne Workloads aktivieren, erhöht sich die CPU-Auslastung minimal, die Gesamtsystemleistung wird jedoch erheblich verbessert, was sich in den folgenden Bereichen messen lässt:

  • Geringere Datenbankgrößen und Speicheranforderungen, da die Daten in einem komprimierten Format auf der Festplatte gespeichert werden.

  • Höhere Trefferquote im Puffercache, da der Puffercache viel mehr Daten aufnehmen kann, wenn er komprimiert ist.

  • Geringere erforderliche Amazon-EBS-IOPS und weniger Durchsatz, da jeder I/O-Vorgang viel mehr Daten zurückgibt und weniger Operationen erforderlich sind, da der Puffer-Cache effektiver ist.

  • Schnellere Backups, da die Daten während des gesamten Backup-Vorgangs komprimiert bleiben.

Sie können die Komprimierung einzeln nach Tabelle oder nur nach Index aktivieren. Sie können auch die Art der Komprimierung, entweder Seite oder Zeile, nach Tabelle und Index auswählen. Es kann von Vorteil sein, Tabellen, die regelmäßig aktualisiert werden, wie z. B. die Tabellen F0002 (Nächste Nummer) und F0902 (Kontosalden), nicht zu komprimieren. In vielen Fällen stellt die Aktivierung der Komprimierung für alle Tabellen und Indizes die einfachste Lösung dar, da sie die meisten Vorteile bietet, ohne dass eine object-by-object Analyse erforderlich ist. Mit den Schritten in diesem Handbuch werden alle Tabellen und Indizes mit Seitenkomprimierung komprimiert.

Unter bestimmten Umständen kann die Komprimierung zu Leistungseinbußen führen, insbesondere wenn Systeme von Drittanbietern direkt auf die JD-Edwards-Datenbanken zugreifen und Tabellen- und Indexscanvorgänge durchführen. Diese Verschlechterung ist in der Regel auf schlecht funktionierende Abfragen zurückzuführen. Überprüfen Sie in diesen Fällen die langsamen Abfragen und verwenden Sie gängige Optimierungstechniken, um deren Leistung zu verbessern. Erwägen Sie beispielsweise, die Abfragen neu zu schreiben, um vorhandene Indizes zu verwenden oder neue Indizes zu erstellen.

Das Aktivieren der Komprimierung ist ein mehrstufiger Vorgang. Viele dieser Schritte erfordern exklusiven Zugriff auf die Datenbankobjekte, was bedeutet, dass Sie andere Systeme offline schalten müssten. EnterpriseOne Gehen Sie wie folgt vor, um die Seitenkomprimierung für alle Tabellen und Indizes in den DTA- und CTL-Schemas zu aktivieren:

Vor der Komprimierung die Auslastung des Festplattenspeichers überprüfen

Führen Sie die folgenden Skripte aus, um die aktuelle Speicherauslastung der Datenbank zu überprüfen.

USE JDE_PRIST920 SELECT DB_NAME() AS DbName, type_desc, CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'; SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS TotalSpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen:

Auslastung des Festplattenspeichers vor der Komprimierung

In diesem Beispiel belegen die Tabellenzeilen 3 407 MB Festplattenspeicher.

Ausführung des Aufzählungsskripts

Aufgrund der großen Anzahl von Tabellen und Indizes in der EnterpriseOne Datenbank können Sie ein Skript verwenden, um die zu komprimierenden Objekte aufzuzählen. Die Ausgabe des Aufzählungsskripts ist das Komprimierungsskript, das im nächsten Abschnitt verwendet wird. Bevor Sie das folgende Skript ausführen, aktualisieren Sie die Namen der Schemabesitzer, sodass sie den Besitzern der Tabellen und Indizes entsprechen, die Sie komprimieren möchten.

declare @tblname as varchar(100) declare @idxname as varchar(100) declare @schemaname as varchar(100) declare @sqlstatement as varchar(512) declare tblcurs CURSOR for select t.name as tblname, s.name as schemaname from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id inner join sys.indexes i on i.object_id = t.object_id inner join sys.partitions p on i.object_id = p.object_id AND i.index_id = p.index_id where s.name in ('PS920DTA', 'PS920CTL') and i.type_desc='CLUSTERED' and p.data_compression_desc <> 'PAGE' open tblcurs FETCH next from tblcurs into @tblname, @schemaname while @@FETCH_STATUS = 0 begin FETCH next from tblcurs into @tblname, @schemaname set @sqlstatement = 'alter table ' + @schemaname + '.' + @tblname + ' rebuild with (DATA_COMPRESSION = PAGE)' print @sqlstatement end close tblcurs deallocate tblcurs declare idxcurs CURSOR for select i.name as idxname, t.name as tblname, s.name as schemaname from sys.tables t inner join sys.schemas s on t.schema_id = s.schema_id inner join sys.indexes i on i.object_id = t.object_id inner jOIN sys.partitions p ON i.object_id = p.object_id AND i.index_id = p.index_id where s.name in ('PS920DTA', 'PS920CTL') and p.data_compression_desc <> 'PAGE' and i.type_desc='NONCLUSTERED' and i.name is not null open idxcurs FETCH next from idxcurs into @idxname, @tblname, @schemaname while @@FETCH_STATUS = 0 begin FETCH next from idxcurs into @idxname, @tblname, @schemaname set @sqlstatement = 'alter index ' + @idxname + ' on ' + @schemaname + '.' + @tblname + ' rebuild with (DATA_COMPRESSION = PAGE)' print @sqlstatement end close idxcurs deallocate idxcurs

Das Aufzählungsskript ausführen

Überprüfen Sie die Ausgabe des Aufzählungsskripts, das Sie im letzten Abschnitt ausgeführt haben. Sie können dieses Komprimierungsskript in kleinere Skripte aufteilen und diese einzeln und parallel ausführen.

Wichtig

Stellen Sie sicher, dass das EnterpriseOne System offline ist, wenn Sie dieses Skript in Ihrer Datenbank ausführen. EnterpriseOne

Hier ist ein Beispiel für das Komprimierungsskript.

alter table PS920DTA.F07620 rebuild with (DATA_COMPRESSION = PAGE) alter table PS920DTA.F760404A rebuild with (DATA_COMPRESSION = PAGE) alter table PS920DTA.F31B93Z1 rebuild with (DATA_COMPRESSION = PAGE) alter table PS920DTA.F31B65 rebuild with (DATA_COMPRESSION = PAGE) alter table PS920DTA.F47156 rebuild with (DATA_COMPRESSION = PAGE) alter table PS920DTA.F74F210 rebuild with (DATA_COMPRESSION = PAGE) ... alter index F4611_16 on PS920DTA.F4611 rebuild with (DATA_COMPRESSION = PAGE) alter index F4611_17 on PS920DTA.F4611 rebuild with (DATA_COMPRESSION = PAGE) alter index F7000110_PK on PS920DTA.F7000110 rebuild with (DATA_COMPRESSION = PAGE) alter index F7000110_3 on PS920DTA.F7000110 rebuild with (DATA_COMPRESSION = PAGE) alter index F7000110_4 on PS920DTA.F7000110 rebuild with (DATA_COMPRESSION = PAGE) alter index F76A801T_PK on PS920DTA.F76A801T rebuild with (DATA_COMPRESSION = PAGE) ...

Die Auslastung des Festplattenspeichers nach der Komprimierung überprüfen

Führen Sie die folgenden Skripte aus, um die aktuelle Speicherauslastung der Datenbank nach der Komprimierung zu überprüfen.

USE JDE_PRIST920 SELECT DB_NAME() AS DbName, type_desc, CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0 AS SpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'; SELECT SUM(CAST(FILEPROPERTY(name, 'SpaceUsed') AS INT)/128.0) AS TotalSpaceUsedMB FROM sys.database_files WHERE type IN (0,1) AND type_desc = 'ROWS'

Die Ausgabe sollte folgendermaßen oder ähnlich aussehen.

Auslastung des Festplattenspeichers nach der Komprimierung

In diesem Beispiel können Sie sehen, dass der belegte Speicherplatz von 3 407 MB auf 1 275 MB gesunken ist, was einer Einsparung von 62 Prozent durch die Komprimierung entspricht. Die Einsparungen für Ihre Datenbank hängen davon ab, wie die Daten auf die Tabellen in der Datenbank verteilt sind.