Fungsi JetCompact

Berlaku untuk: Windows | Windows Server

Fungsi JetCompact

Fungsi JetCompact membuat salinan database yang sudah ada. Salinan dikompilasi ke status optimal untuk penggunaan. Data dalam data yang disalin akan dikemas sesuai dengan langkah-langkah yang dipilih untuk indeks pada pembuatan indeks. Dengan cara ini, data yang dikompresi dapat disimpan sesakatkan mungkin. Atau, data yang dikompresi dapat mencadangkan ruang untuk penyisipan indeks atau pertumbuhan rekor berikutnya.

    JET_ERR JET_API JetCompact(
      __in          JET_SESID sesid,
      __in          JET_PCSTR szDatabaseSrc,
      __in          JET_PCSTR szDatabaseDest,
      __in          JET_PFNSTATUS pfnStatus,
      __in_opt      JET_CONVERT* pconvert,
      __in          JET_GRBIT grbit
    );

Parameter

sesid

Sesi yang digunakan untuk panggilan ini.

szDatabaseSrc

Database sumber yang akan dikompresi.

szDatabaseDest

Nama yang digunakan untuk database yang dikompresi.

pfnStatus

Fungsi panggilan balik yang dapat dipanggil secara berkala melalui operasi ringkas database untuk melaporkan kemajuan.

pconvert

Pointer yang digunakan untuk menunjuk DLL ESE alternatif yang dapat digunakan untuk membaca database sumber, dan untuk menyediakan parameter opsional untuk operasi JetCompact yang mengonversi database dari format versi yang lebih lama ke yang lebih baru. Fitur ini dihentikan di Windows Server 2003.

grbit

Sekelompok bit yang menentukan nol atau beberapa opsi berikut.

Nilai

Makna

JET_bitCompactRepair

Digunakan saat database sumber diketahui rusak. Ini memungkinkan seluruh set perilaku baru yang dimaksudkan untuk menyelamatkan data sebanyak mungkin dari database sumber. JetCompact dengan set opsi ini dapat mengembalikan JET_errSuccess tetapi tidak menyalin semua data yang dibuat dalam database sumber. Data yang berada di bagian database sumber yang rusak akan dilewati.

JET_bitCompactStats

Menyebabkan JetCompact membuang statistik pada database sumber ke file bernama DFRGINFO.TXT. Statistik mencakup nama setiap tabel dalam database sumber, jumlah baris di setiap tabel, ukuran total dalam byte semua baris di setiap tabel, ukuran total dalam byte dari semua kolom jenis JET_coltypLongText atau JET_coltypLongBinary yang cukup besar untuk disimpan terpisah dari rekaman, jumlah halaman daun indeks berkluster, dan jumlah halaman daun nilai panjang. Selain itu, statistik ringkasan termasuk ukuran database sumber, database tujuan, waktu yang diperlukan untuk pemadatan database, ruang database sementara juga dicadangkan.

Tampilkan Nilai

Fungsi ini mengembalikan jenis data JET_ERR dengan salah satu kode pengembalian berikut. Untuk informasi selengkapnya tentang kemungkinan kesalahan ESE, lihat Kesalahan Mesin Penyimpanan yang Dapat Diperluas dan Parameter Penanganan Kesalahan.

Menampilkan kode

Deskripsi

JET_errSuccess

Operasi berhasil diselesaikan.

JET_errClientRequestToStopJetService

Tidak dimungkinkan untuk menyelesaikan operasi karena semua aktivitas pada instans yang terkait dengan sesi telah berhenti sebagai akibat dari panggilan ke JetStopService.

JET_errFeatureNotAvailable

Penunjuk pconvert non-NULL telah disediakan tetapi versi ESE yang digunakan tidak mendukung fitur konversi. Fitur ini dihapus di ESE versi Windows Server 2003.

JET_errInstanceUnavailable

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi telah mengalami kesalahan fatal yang mengharuskan akses ke semua data dicabut untuk melindungi integritas data tersebut. Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errInTransaction

Sesi panggilan berada dalam transaksi. JetCompact harus dipanggil oleh sesi di luar transaksi apa pun.

JET_errNotInitialized

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi belum diinisialisasi.

JET_errRestoreInProgress

Tidak dimungkinkan untuk menyelesaikan operasi karena operasi pemulihan sedang berlangsung pada instans yang terkait dengan sesi.

JET_errSessionSharingViolation

Sesi yang sama tidak dapat digunakan untuk lebih dari satu utas secara bersamaan.

Kesalahan ini hanya akan dikembalikan oleh Windows XP dan rilis yang lebih baru.

JET_errTermInProgress

Tidak dimungkinkan untuk menyelesaikan operasi karena instans yang terkait dengan sesi sedang dimatikan.

Jika berhasil, database sumber disalin ke database tujuan. Database tujuan dalam keadaan optimal, misalnya, semua indeks tabel terletak di ruang disk logis yang berdekatan. Setiap halaman indeks diisi ke jumlah yang dikonfigurasi ketika indeks awalnya dibuat dalam database sumber. Semua pengaturan data dan metadata disalin dengan keakuratan penuh, kecuali opsi perbaikan ditentukan. Jika opsi perbaikan ditentukan, beberapa data dari database sumber mungkin belum disalin.

Jika gagal, database tujuan mungkin ada tetapi bukan salinan lengkap database sumber.

Keterangan

Memadatkan database juga digunakan untuk meningkatkan database dari format versi yang lebih lama ke versi yang lebih modern. Parameter opsional adalah pconvert, yang berisi struktur yang dapat menyimpan deskripsi untuk DLL versi sebelumnya untuk digunakan untuk membaca format database sumber. Fitur ini dihentikan di Windows Server 2003. Selanjutnya ke Windows Server 2003, versi baru ESE selalu dapat membaca versi format database yang lebih lama dan karenanya fitur ini tidak diperlukan.

Kepadatan data yang diinginkan setelah operasi ringkas ditentukan saat tabel dan indeks dibuat. Kepadatan harus antara 20% dan 100%. Jika database terutama dibaca dan tidak diperbarui, aplikasi akan mengatur kepadatan menjadi 100% untuk mengurangi jumlah operasi I/O selama pemrosesan kueri. Namun, jika data sering diperbarui dengan operasi yang meningkatkan ukuran data yang disimpan bersama dengan rekaman, atau data baru sering dimasukkan, aplikasi akan memilih kepadatan yang lebih rendah sehingga pembaruan akan lebih sering menemukan sumber daya yang diperlukan yang tersedia. Pengoperasian memadatkan database menyebabkan database ditata secara ideal sesuai dengan isi yang dipilih oleh aplikasi.

Pemadatan database adalah operasi off-line. Ini tidak dapat dilakukan saat database sedang digunakan. Akibatnya, biasanya dilakukan sebagai bagian dari proses build pengembangan aplikasi yang memberikan himpunan data sebagai bagian dari dirinya sendiri.

Pemadatan database offline menyentuh setiap bit data dalam database dan dapat digunakan sebagai sarana untuk memeriksa konsistensi database. Jika database dicurigai maka database dapat dikompresi. Jika tidak ada kesalahan yang ditemukan dari pemadatan, maka akan diketahui bahwa database berada dalam status valid untuk ESE.

Persyaratan

Persyaratan Nilai

Klien

Memerlukan Windows Vista, Windows XP, atau Windows 2000 Professional.

Server

Memerlukan Windows Server 2008, Windows Server 2003, atau Windows 2000 Server.

Header

Dinyatakan dalam Esent.h.

Pustaka

Gunakan ESENT.lib.

DLL

Membutuhkan ESENT.dll.

Unicode

Diimplementasikan sebagai JetCompactW (Unicode) dan JetCompactA (ANSI).

Lihat juga

JET_COLTYP
JET_ERR
JET_SESID
JetDefragment
JetStopService