Bagikan melalui


In-Memory OLTP (Pengoptimalan Dalam Memori)

Baru di SQL Server 2014 (12.x), In-Memory OLTP dapat secara signifikan meningkatkan performa aplikasi database OLTP. In-Memory OLTP adalah mesin database yang dioptimalkan memori yang terintegrasi ke dalam mesin SQL Server, dioptimalkan untuk OLTP.

Azure Virtual Machine Apakah Anda ingin mencoba SQL Server 2016? Daftar untuk Microsoft Azure, lalu buka Di sini untuk memutar Komputer Virtual dengan SQL Server 2016 yang sudah diinstal. Anda dapat menghapus Komputer Virtual setelah selesai.

Untuk menggunakan In-Memory OLTP, Anda menentukan tabel yang sangat diakses sebagai memori yang dioptimalkan. Tabel yang dioptimalkan memori sepenuhnya transaksi, tahan lama, dan diakses menggunakan Transact-SQL dengan cara yang sama seperti tabel berbasis disk. Kueri dapat mereferensikan tabel yang dioptimalkan memori dan tabel berbasis disk. Transaksi dapat memperbarui data dalam tabel yang dioptimalkan memori dan tabel berbasis disk. Prosedur tersimpan yang hanya mereferensikan tabel yang dioptimalkan memori dapat dikompilasi secara asli ke dalam kode mesin untuk peningkatan performa lebih lanjut. Mesin In-Memory OLTP dirancang untuk konkurensi sesi yang sangat tinggi untuk jenis transaksi OLTP yang didorong dari tingkat menengah yang sangat diskalakan. Untuk mencapai hal ini, ia menggunakan struktur data bebas kait dan kontrol konkurensi multi-versi yang optimis. Hasilnya dapat diprediksi, latensi rendah sub-milidetik dan throughput tinggi dengan penskalaan linier untuk transaksi database. Perolehan performa aktual tergantung pada banyak faktor, tetapi peningkatan performa 5-hingga 20 kali umum terjadi.

Tabel berikut ini meringkas pola beban kerja yang mungkin paling menguntungkan dengan menggunakan In-Memory OLTP:

Skenario Implementasi Skenario Implementasi Manfaat In-Memory OLTP
Tingkat penyisipan data yang tinggi dari beberapa koneksi bersamaan. Terutama toko khusus tambahan.

Tidak dapat mengikuti beban kerja sisipan.
Menghilangkan pertikaian.

Kurangi pengelogan.
Membaca performa dan menskalakan dengan sisipan dan pembaruan batch berkala. Operasi baca performa tinggi, terutama ketika setiap permintaan server memiliki beberapa operasi baca untuk dilakukan.

Tidak dapat memenuhi persyaratan peningkatan skala.
Hilangkan ketidakcocokan saat data baru tiba.

Pengambilan data latensi yang lebih rendah.

Minimalkan waktu eksekusi kode.
Pemrosesan logika bisnis intensif di server database. Sisipkan, perbarui, dan hapus beban kerja.

Komputasi intensif di dalam prosedur tersimpan.

Membaca dan menulis ketidakcocokan.
Menghilangkan pertikaian.

Minimalkan waktu eksekusi kode untuk mengurangi latensi dan throughput yang ditingkatkan.
Latensi rendah. Memerlukan transaksi bisnis latensi rendah yang tidak dapat dicapai oleh solusi database tipikal. Menghilangkan pertikaian.

Minimalkan waktu eksekusi kode.

Eksekusi kode latensi rendah.

Pengambilan data yang efisien.
Manajemen status sesi. Sering menyisipkan, memperbarui, dan mengarahkan pencarian.

Beban skala tinggi dari banyak server web stateless.
Menghilangkan pertikaian.

Pengambilan data yang efisien.

Pengurangan atau penghapusan IO opsional, saat menggunakan tabel yang tidak tahan lama

Untuk informasi selengkapnya tentang skenario di mana In-Memory OLTP akan menghasilkan perolehan performa terbesar, lihat OLTP Dalam Memori - Pola Beban Kerja Umum dan Pertimbangan Migrasi.

In-Memory OLTP akan meningkatkan performa terbaik dalam OLTP dengan transaksi jangka pendek.

Pola pemrograman yang In-Memory OLTP akan ditingkatkan termasuk skenario konkurensi, pencarian titik, beban kerja di mana ada banyak sisipan dan pembaruan, dan logika bisnis dalam prosedur tersimpan.

Integrasi dengan SQL Server berarti Anda dapat memiliki tabel yang dioptimalkan memori dan tabel berbasis disk dalam database yang sama, dan mengkueri di kedua jenis tabel.

Pada SQL Server 2014 (12.x) ada batasan di area permukaan Transact-SQL yang didukung untuk In-Memory OLTP.

In-Memory OLTP mencapai perolehan performa dan skalabilitas yang signifikan dengan menggunakan:

  • Algoritma yang dioptimalkan untuk mengakses data residen memori.

  • Kontrol konkurensi optimis yang menghilangkan kunci logis.

  • Kunci objek bebas yang menghilangkan semua kunci fisik dan kait. Utas yang melakukan pekerjaan transaksional tidak menggunakan kunci atau kait untuk kontrol konkurensi.

  • Prosedur tersimpan yang dikompilasi secara asli, yang memiliki performa yang jauh lebih baik daripada prosedur tersimpan yang ditafsirkan, saat mengakses tabel yang dioptimalkan memori.

Penting

Beberapa perubahan sintaks pada tabel dan prosedur tersimpan akan diperlukan untuk menggunakan In-Memory OLTP. Untuk informasi selengkapnya, lihat Migrasi ke In-Memory OLTP. Sebelum Anda mencoba memigrasikan tabel berbasis disk ke tabel yang dioptimalkan memori, baca Menentukan apakah Tabel atau Prosedur Tersimpan Harus Di-Port ke In-Memory OLTP untuk melihat tabel dan prosedur tersimpan mana yang akan mendapat manfaat dari In-Memory OLTP.

Di bagian ini

Bagian ini menyediakan informasi tentang konsep berikut:

Topik Deskripsi
Persyaratan untuk Menggunakan Tabel Memory-Optimized Membahas persyaratan perangkat keras dan perangkat lunak serta panduan untuk menggunakan tabel yang dioptimalkan memori.
Menggunakan In-Memory OLTP di Lingkungan VM Mencakup penggunaan In-Memory OLTP di lingkungan virtual.
Sampel Kode OLTP Dalam Memori Berisi sampel kode yang menunjukkan cara membuat dan menggunakan tabel yang dioptimalkan memori.
Tabel yang Dioptimalkan Memori Memperkenalkan tabel yang dioptimalkan memori.
Variabel Tabel yang Dioptimalkan Memori Contoh kode memperlihatkan cara menggunakan variabel tabel yang dioptimalkan memori alih-alih variabel tabel tradisional untuk mengurangi penggunaan tempdb.
Indeks pada Tabel Memory-Optimized Memperkenalkan indeks yang dioptimalkan memori.
Prosedur Tersimpan yang Dikompilasi Secara Asli Memperkenalkan prosedur tersimpan yang dikompilasi secara asli.
Mengelola Memori untuk OLTP In-Memory Memahami dan mengelola penggunaan memori pada sistem Anda.
Membuat dan Mengelola Penyimpanan untuk Objek Memory-Optimized Membahas data dan file delta, yang menyimpan informasi tentang transaksi dalam tabel yang dioptimalkan memori.
Pencadangan, Pemulihan, dan Pemulihan Tabel Memory-Optimized Membahas pencadangan, pemulihan, dan pemulihan untuk tabel yang dioptimalkan memori.
Dukungan Transact-SQL untuk OLTP In-Memory Membahas dukungan Transact-SQL untuk In-Memory OLTP.
Dukungan Ketersediaan Tinggi untuk database OLTP In-Memory Membahas grup ketersediaan dan pengklusteran failover di In-Memory OLTP.
Dukungan SQL Server untuk OLTP In-Memory Mencantumkan sintaks dan fitur baru dan yang diperbarui yang mendukung tabel yang dioptimalkan memori.
Migrasi ke OLTP In-Memory Membahas cara memigrasikan tabel berbasis disk ke tabel yang dioptimalkan memori.

Informasi selengkapnya tentang In-Memory OLTP tersedia di:

Lihat juga

Fitur Database