Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Konfigurasikan kompresi data
Anda dapat mengompres tabel dan indeks dalam data EnterpriseOne bisnis dan tabel kontrol dengan menggunakan kompresi halaman atau baris. Sebagian besar EnterpriseOne beban kerja AWS menunjukkan kinerja terbaik dengan kompresi halaman, tetapi beban kerja yang sangat besar (kelipatan terabyte yang tidak terkompresi) mungkin berkinerja lebih baik dengan kompresi baris. Diskusi terperinci tentang kompresi halaman versus baris berada di luar cakupan panduan ini. Bagian ini berfokus terutama pada kompresi halaman.
Ketika Anda mengaktifkan kompresi untuk EnterpriseOne beban kerja normal, ada peningkatan minimal dalam penggunaan CPU tetapi manfaat signifikan untuk kinerja sistem secara keseluruhan, yang dapat diukur dalam bidang-bidang berikut:
-
Ukuran database yang lebih kecil dan persyaratan penyimpanan, karena data disimpan pada disk dalam format terkompresi.
-
Rasio hit cache buffer yang lebih tinggi, karena cache buffer dapat menyimpan lebih banyak data saat dikompresi.
-
Turunkan Amazon EBS IOPS dan throughput yang diperlukan, karena setiap operasi I/O mengembalikan lebih banyak data, dan lebih sedikit operasi yang diperlukan, karena cache buffer lebih efektif.
-
Pencadangan lebih cepat, karena data tetap dikompresi selama proses pencadangan.
Anda dapat mengaktifkan kompresi satu per satu dengan tabel atau dengan indeks saja. Anda juga dapat memilih jenis kompresi, baik halaman atau baris, berdasarkan tabel dan indeks. Mungkin menguntungkan untuk tidak mengompres tabel yang diperbarui secara teratur, seperti tabel F0002 (Nomor Berikutnya) dan F0902 (Saldo Akun). Dalam banyak keadaan, memungkinkan kompresi di semua tabel dan indeks memberikan solusi termudah, karena memberikan sebagian besar manfaat tanpa memerlukan analisis object-by-object. Langkah-langkah dalam panduan ini akan mengompres semua tabel dan indeks dengan kompresi halaman.
Dalam beberapa keadaan, kompresi dapat menyebabkan penurunan kinerja, terutama ketika sistem pihak ketiga secara langsung mengakses database JD Edwards dan melakukan operasi pemindaian tabel dan indeks. Degradasi ini biasanya didorong oleh query yang berkinerja buruk. Dalam kasus ini, tinjau kueri lambat dan gunakan teknik pengoptimalan umum untuk meningkatkan kinerjanya. Misalnya, pertimbangkan untuk menulis ulang kueri untuk menggunakan indeks yang ada atau membangun indeks baru.
Mengaktifkan kompresi adalah proses multi-langkah. Banyak dari langkah-langkah ini memerlukan akses eksklusif ke objek database, yang berarti Anda harus mengambil EnterpriseOne dan sistem lainnya offline. Ikuti langkah-langkah tingkat tinggi ini untuk mengaktifkan kompresi halaman pada semua tabel dan indeks dalam skema DTA dan CTL:
Periksa pemanfaatan ruang disk sebelum kompresi
Untuk memeriksa pemanfaatan ruang disk saat ini dari database, jalankan skrip berikut.
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'
Output harus serupa dengan yang berikut ini:

Dalam contoh ini, baris tabel menempati 3.407 MB ruang disk.
Jalankan skrip enumerasi
Karena volume besar tabel dan indeks dalam EnterpriseOne database, Anda dapat menggunakan skrip untuk menghitung objek yang akan dikompresi. Output dari skrip enumerasi adalah skrip kompresi yang digunakan di bagian berikutnya. Sebelum Anda menjalankan skrip berikut, perbarui nama pemilik skema untuk mencerminkan pemilik tabel dan indeks yang ingin Anda kompres.
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
Jalankan skrip kompresi
Tinjau output skrip enumerasi yang Anda jalankan di bagian terakhir. Anda dapat memecah skrip kompresi ini menjadi skrip yang lebih kecil dan menjalankannya secara individual dan paralel.
penting
Pastikan bahwa EnterpriseOne sistem offline ketika Anda menjalankan skrip ini terhadap EnterpriseOne database Anda.
Berikut adalah contoh skrip kompresi.
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) ...
Periksa pemanfaatan ruang disk setelah kompresi
Untuk memeriksa pemanfaatan ruang disk saat ini dari database setelah kompresi, jalankan skrip berikut.
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'
Output harus serupa dengan yang berikut ini.

Dalam contoh ini, Anda dapat melihat bahwa ruang yang digunakan turun dari 3.407 MB menjadi 1.275 MB, yang mewakili penghematan 62 persen dari kompresi. Penghematan untuk database Anda akan bervariasi berdasarkan bagaimana data didistribusikan di antara tabel dalam database.