Kolom Nilai Panjang

Berlaku untuk: Windows | Windows Server

Kolom Nilai Panjang

Jenis kolom ESE JET_coltypLongText dan JET_coltypLongBinary disebut jenis kolom nilai panjang. Kolom ini adalah string besar dan objek biner besar yang dapat disimpan di pohon B+ terpisah dari indeks utama. Ketika nilai panjang disimpan terpisah dari rekaman utama, nilai tersebut secara internal di-key pada ID nilai panjang (LID) dan offset byte dan diakses sebagai aliran. Kolom nilai panjang ditambahkan ke tabel dalam panggilan ke JetAddColumn dengan coltyp anggota struktur JET_COLUMNDEF diatur ke JET_coltypLongText atau JET_coltypLongBinary. Ukuran maksimum nilai kolom Teks Panjang atau Biner Panjang adalah 2 GB -1.

ESE mendukung operasi penampakan, penimpaan rentang byte, dan mengatur ukuran untuk kolom nilai panjang untuk mendukung implementasi aliran yang efisien pada jenis kolom ini. Secara default, data nilai panjang disimpan di pohon B+ terpisah jika lebih besar dari 1024 byte, atau jika catatan tidak cocok pada satu halaman database ketika data nilai panjang disimpan dalam rekaman. Aplikasi memiliki opsi untuk mengambil alih perilaku default dengan mengatur opsi untuk menyimpan data nilai panjang dalam rekaman (JET_bitSetIntrinsicLV) atau memaksa mereka disimpan di pohon B+ terpisah (JET_bitSetSeparateLV). Nilai-nilai ini diatur dalam parameter grbit di JetSetColumn , atau anggota grbitJET_SETCOLUMN digunakan dalam panggilan ke JetSetColumns sebagai berikut:

  • Tambahkan: (JET_bitSetAppendLV)

  • Byte Range Overwrite: (JET_bitSetOverwriteLV)

  • Atur Ukuran: (JET_bitSetSizeLV)

  • Paksa Pisahkan: (JET_bitSetSeparateLV)

  • Simpan Dalam Rekaman: (JET_bitSetIntrinsicLV)

Data nilai panjang diatur dengan menunjukkan offset ke dalam blob nilai panjang, dan panjang data nilai panjang dalam blob. Offset ke blob nilai panjang diatur dalam ibLongValue anggota struktur JET_SETINFO (untuk JetSetColumn ) atau ibLongValue anggota struktur JET_SETCOLUMN (untuk JetSetColumns). pvData anggota parameter JET_SETCOLUMN, dan pvData dalam panggilan ke JetSetColumn berisi data nilai panjang. Pembaruan pada kolom nilai panjang harus dilakukan di dalam transaksi.

Data nilai panjang selalu disimpan dalam tabel terpisah adalah ketika aplikasi mengatur JET_bitSetSeparateLV atau JET_bitSetIntrinsicLV, jika tidak, itu secara heuristik diputuskan. ESE menyimpan nilai panjang yang dipisahkan jika lebih besar dari 1024 byte atau jika catatan tidak akan pas pada satu halaman database jika disimpan dalam catatan.

Diagram berikut menunjukkan data nilai panjang yang disimpan dalam tabel terpisah. Saat nilai panjang disimpan di luar rekaman, ID bernilai panjang baru dibuat untuk merujuk ke nilainya. Ini memungkinkan beberapa rekaman untuk merujuk ke nilai kolom yang sama. Jumlah referensi ke data ditingkatkan jika lebih dari satu rekaman dalam data menunjuk ke data nilai panjang yang sama.

ESE_Documentation_longvaluedtree2

ESE juga mendukung fitur penyimpanan instans tunggal yang memungkinkan beberapa rekaman untuk mereferensikan objek biner besar yang sama seolah-olah setiap rekaman memiliki salinan informasinya sendiri; sehingga menghindari salinan duplikat dari data nilai kolom. Fitur ini diaktifkan dalam panggilan ke JetPrepareUpdate dengan opsi JET_prepInsertCopy diatur dalam parameter persiapan.