Bagikan melalui


Mengakses Tabel Memory-Optimized Menggunakan Transact-SQL yang Ditafsirkan

Hanya dengan beberapa pengecualian, Anda dapat mengakses tabel yang dioptimalkan memori menggunakan kueri Transact-SQL atau operasi DML (SELECT, INSERT, UPDATE, atau DELETE), batch ad hoc, dan modul SQL seperti prosedur tersimpan, fungsi nilai tabel, pemicu, dan tampilan.

Transact-SQL yang ditafsirkan mengacu pada batch Transact-SQL atau prosedur tersimpan selain prosedur tersimpan yang dikompilasi secara asli. Akses yang diinterprestasikan Transact-SQL ke tabel yang dioptimalkan memori dikenal sebagai akses interoperabilitas.

Tabel yang dioptimalkan memori juga dapat diakses menggunakan prosedur tersimpan yang dikompilasi secara asli. Prosedur tersimpan yang dikompilasi secara asli direkomendasikan untuk operasi OLTP (Transaksi Pemrosesan Online) yang kinerja kritis.

Akses Transact-SQL yang ditafsirkan direkomendasikan untuk skenario ini:

  • Kueri ad hoc dan tugas administrasi.

  • Kueri pelaporan, yang biasanya menggunakan struktur yang tidak tersedia dalam prosedur tersimpan yang dikompilasi secara native (seperti fungsi jendela).

  • Untuk memigrasikan bagian penting performa aplikasi Anda ke tabel yang dioptimalkan memori, dengan perubahan kode aplikasi minimal (atau tidak). Anda dapat melihat potensi peningkatan performa dari migrasi tabel. Jika Anda kemudian memigrasikan prosedur tersimpan ke prosedur tersimpan yang dikompilasi secara asli, Anda mungkin melihat peningkatan performa lebih lanjut.

  • Ketika pernyataan Transact-SQL tidak tersedia untuk prosedur tersimpan yang dikompilasi secara asli.

Konstruksi Transact-SQL berikut ini tidak didukung dalam prosedur tersimpan Transact-SQL yang ditafsirkan yang mengakses data dalam tabel yang dioptimalkan memori.

Wilayah Tidak didukung
Akses ke tabel TRUNCATE TABEL

MERGE (tabel yang dioptimalkan memori sebagai target)

Kursor dinamis dan kursor jenis keyset (ini secara otomatis berubah menjadi statis).

Akses dari modul CLR, menggunakan koneksi konteks.

Mereferensikan tabel yang dioptimalkan memori dari tampilan terindeks.
Lintas database Kueri lintas database

Transaksi lintas database

Server yang ditautkan

Petunjuk Tabel

Untuk informasi selengkapnya tentang petunjuk tabel, lihat. Petunjuk untuk Tabel (Transact-SQL). Isolasi SNAPSHOT telah ditambahkan untuk mendukung In-Memory OLTP.

Petunjuk tabel berikut ini tidak didukung saat mengakses tabel yang dioptimalkan memori menggunakan Transact-SQL yang ditafsirkan.

HOLDLOCK IGNORE_CONSTRAINTS ABAIKAN_PICUAN SEKARANGAIT
PAGLOCK READCOMMITTED READCOMMITTEDLOCK READPAST
BACA TANPA KOMITMEN ROWLOCK SPATIAL_WINDOW_MAX_CELLS = integer TABLOCK
TABLOCKXX UPDLOCK XLOCK

Saat mengakses tabel yang dioptimalkan memori dari transaksi eksplisit atau implisit menggunakan Transact-SQL yang ditafsirkan, Anda harus menyertakan petunjuk tabel tingkat isolasi seperti SNAPSHOT, REPEATABLEREAD, atau SERIALIZABLE, atau Anda dapat menggunakan MEMORY_OPTIMIZED_ELEVATE_TO_SNAPSHOT. Untuk informasi selengkapnya, lihat Panduan Untuk Tingkat Isolasi Transaksi dengan tabel Memory-Optimized dan Opsi ALTER DATABASE SET (Transact-SQL).

Nota

Petunjuk tingkat isolasi tabel tidak diperlukan untuk tabel yang dioptimalkan memori yang diakses oleh kueri yang berjalan dalam mode komit otomatis.

Lihat Juga

Dukungan Transact-SQL untuk OLTP Dalam Memori
Migrasi ke Dalam Memori OLTP