Mengakses Tabel yang Dioptimalkan Memori Menggunakan Transact-SQL yang Ditafsirkan

Berlaku untuk: SQL Server Azure SQL DatabaseNot supported.Azure Synapse Analytics Analytics Not supported. Platform System (PDW)

Hanya dengan beberapa pengecualian, Anda dapat mengakses tabel yang dioptimalkan memori menggunakan kueri Transact-SQL atau operasi DML apa pun (pilih, sisipkan, perbarui, atau hapus), 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 Transact-SQL yang ditafsirkan ke tabel yang dioptimalkan memori disebut sebagai akses interop.

Dimulai dengan SQL Server 2016 (13.x), kueri dalam Transact-SQL yang ditafsirkan dapat memindai tabel yang dioptimalkan memori secara paralel, bukan hanya dalam mode serial.

Tabel yang dioptimalkan memori juga dapat diakses menggunakan prosedur tersimpan yang dikompilasi secara asli. Prosedur tersimpan yang dikompilasi secara asli direkomendasikan untuk operasi OLTP kritis performa.

Akses Transact-SQL yang ditafsirkan direkomendasikan untuk skenario ini:

  • Kueri ad hoc dan tugas administratif.

  • Kueri pelaporan, yang biasanya menggunakan konstruksi yang tidak tersedia dalam prosedur tersimpan yang dikompilasi secara asli (seperti fungsi jendela , kadang-kadang disebut sebagai fungsi OVER ).

  • Untuk memigrasikan bagian penting performa aplikasi Anda ke tabel yang dioptimalkan memori, dengan perubahan kode aplikasi minimal (atau tidak). Anda berpotensi melihat peningkatan performa dari tabel migrasi. 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.

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

Luas Tidak didukung
Akses ke tabel POTONG TABEL

MERGE (tabel yang dioptimalkan memori sebagai target)

Kursor dinamis dan set kunci (ini secara otomatis turun 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 Tabel (Transact-SQL). SNAPSHOT ditambahkan untuk mendukung OLTP Dalam Memori.

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

HOLDLOCK

PAGLOCK

READUNCOMMITTED

TABLOCKXX

IGNORE_CONSTRAINTS

READCOMMITTED

ROWLOCK

UPDLOCK

IGNORE_TRIGGERS

READCOMMITTEDLOCK

SPATIAL_WINDOW_MAX_CELLS = bilangan bulat

XLOCK

SEKARANGAIT

READPAST

TABLOCK

Saat mengakses tabel yang dioptimalkan memori dari transaksi eksplisit atau implisit menggunakan Transact-SQL yang ditafsirkan, Anda harus melakukan setidaknya salah satu hal berikut:

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

Lihat Juga

Dukungan Transact-SQL untuk OLTP Dalam Memori

Migrasi ke OLTP Dalam Memori