Sertifikasi kompatibilitas

Berlaku untuk:SQL Server Azure SQL DatabaseAzure SQL Managed Instance

Sertifikasi kompatibilitas memungkinkan bisnis untuk meningkatkan dan memodernisasi database SQL Server lokal, di cloud, dan di tepi, menghilangkan risiko kompatibilitas aplikasi.

Mesin Database yang sama mendukung Database SQL Server dan Azure SQL (termasuk Azure SQL Managed Instance). Mesin Database bersama ini berarti bahwa database pengguna dapat dipindahkan dengan mulus antara SQL Server lokal dan database Azure SQL, sementara kode aplikasi yang dijalankan dalam database karena Transact-SQL terus berfungsi seperti yang ada di sistem sumbernya.

Untuk setiap rilis baru SQL Server, tingkat kompatibilitas default diatur ke versi Mesin Database. Tetapi tingkat kompatibilitas versi sebelumnya dipertahankan untuk kompatibilitas berkelanjutan dari aplikasi yang ada. Matriks kompatibilitas ini dapat dilihat di sini. Oleh karena itu, aplikasi yang disertifikasi untuk bekerja dengan versi SQL Server tertentu sebenarnya disertifikasi untuk bekerja pada tingkat kompatibilitas default versi tersebut.

Misalnya, tingkat kompatibilitas database 130 adalah default di SQL Server 2016 (13.x). Karena tingkat kompatibilitas memaksa perilaku fungsional dan pengoptimalan kueri Transact-SQL tertentu, database yang disertifikasi untuk bekerja pada SQL Server 2016 (13.x) secara implisit disertifikasi pada tingkat kompatibilitas database 130. Database ini dapat berfungsi apa adanya pada versi SQL Server yang lebih baru (seperti SQL Server 2019 (15.x)) dan database Azure SQL, selama tingkat kompatibilitas database disimpan sebagai 130.

Ini adalah prinsip mendasar untuk Microsoft Azure SQL Database model operasi integrasi berkelanjutan. Mesin Database terus ditingkatkan dan ditingkatkan di Azure, tetapi karena database yang ada menjaga tingkat kompatibilitas mereka saat ini, mereka terus bekerja seperti yang dirancang bahkan setelah peningkatan ke Mesin Database yang mendasar.

Ini juga bagaimana SharePoint Server 2016 dan SharePoint Server 2019 sertifikasi pada SQL Server dan Azure SQL Managed Instance, memungkinkan Anda untuk menyebarkan mesin database SQL Server yang dapat menggunakan tingkat kompatibilitas database yang didukung untuk versi SharePoint Server tersebut. Untuk informasi selengkapnya, lihat Persyaratan perangkat keras dan perangkat lunak untuk SharePoint Server 2016 dan Persyaratan perangkat keras dan perangkat lunak untuk SharePoint Server 2019.

Mengelola risiko peningkatan dengan sertifikasi kompatibilitas

Menggunakan Sertifikasi Kompatibilitas adalah pendekatan yang berharga untuk modernisasi database. Dengan mensertifikasi berdasarkan tingkat kompatibilitas, pengembang menetapkan persyaratan teknis agar aplikasi didukung pada SQL Server dan Azure SQL Database, tetapi memisahkan siklus hidup aplikasi dari siklus hidup platform database. Ini memungkinkan perusahaan untuk menjaga SQL Server Mesin Database ditingkatkan sesuai kebutuhan oleh kebijakan siklus hidup, menggunakan skalabilitas baru dan peningkatan performa yang tidak bergantung pada kode, dan menghubungkan aplikasi mempertahankan status fungsional mereka melalui peningkatan.

Kemungkinan yang berdampak buruk pada fungsionalitas dan performa adalah faktor risiko utama untuk setiap peningkatan. Sertifikasi Kompatibilitas mewakili ketenangan pikiran dalam hal mengelola risiko peningkatan ini:

  • Dalam apa yang berkaitan dengan perilaku Transact-SQL, setiap perubahan berarti bahwa aplikasi perlu disertifikasi ulang untuk kebenaran. Namun, pengaturan tingkat kompatibilitas database memberikan kompatibilitas mundur dengan versi SQL Server sebelumnya hanya untuk database yang ditentukan, bukan untuk seluruh server. Menjaga tingkat kompatibilitas database apa adanya memastikan bahwa kueri aplikasi yang ada terus menampilkan perilaku yang sama sebelum dan sesudah peningkatan Mesin Database. Untuk informasi selengkapnya tentang perilaku transact-SQL dan tingkat kompatibilitas, lihat Menggunakan tingkat kompatibilitas untuk kompatibilitas mundur.

  • Dalam apa yang berkaitan dengan performa, karena peningkatan dalam Pengoptimal Kueri diperkenalkan dengan setiap versi, mungkin diharapkan menemukan perbedaan rencana kueri antara versi Mesin Database yang berbeda. Perbedaan rencana kueri dalam cakupan peningkatan biasanya diterjemahkan ke risiko, ketika ada potensi bahwa beberapa perubahan mungkin merugikan untuk kueri atau beban kerja tertentu. Pada gilirannya, risiko inilah yang biasanya mendorong kebutuhan akan sertifikasi ulang aplikasi, yang dapat menunda peningkatan dan menimbulkan tantangan siklus hidup dan dukungan.

    Mengurangi risiko peningkatan adalah mengapa peningkatan Pengoptimal Kueri terjaga pada tingkat kompatibilitas default rilis baru (dengan kata lain, tingkat kompatibilitas tertinggi yang tersedia untuk versi baru apa pun). Sertifikasi Kompatibilitas mencakup perlindungan bentuk rencana kueri: gagasan bahwa mempertahankan tingkat kompatibilitas database apa adanya segera setelah peningkatan Mesin Database diterjemahkan ke dalam menggunakan model pengoptimalan kueri yang sama dalam versi baru, seperti sebelum peningkatan, dan bentuk rencana kueri tidak boleh berubah.

    Untuk informasi selengkapnya, lihat bagian Mengapa bentuk rencana kueri? di artikel ini.

Untuk informasi selengkapnya tentang tingkat kompatibilitas, lihat Menggunakan tingkat kompatibilitas untuk kompatibilitas mundur.

Penting

Untuk aplikasi yang sudah ada yang sudah disertifikasi untuk tingkat kompatibilitas tertentu, tingkatkan mesin database SQL Server dan pertahankan tingkat kompatibilitas database sebelumnya. Tidak perlu mensertifikasi ulang aplikasi dalam skenario ini. Untuk informasi selengkapnya, lihat Tingkat kompatibilitas dan peningkatan Mesin Database nanti di artikel ini.

Untuk pekerjaan pengembangan baru, atau ketika aplikasi yang ada memerlukan penggunaan fitur baru seperti Pemrosesan Kueri Cerdas, serta beberapa Transact-SQL baru, rencanakan untuk meningkatkan tingkat kompatibilitas database ke yang terbaru tersedia di SQL Server, dan sertifikasi ulang aplikasi Anda untuk bekerja dengan tingkat kompatibilitas tersebut. Untuk informasi selengkapnya tentang meningkatkan tingkat kompatibilitas database, lihat Praktik Terbaik untuk meningkatkan Tingkat Kompatibilitas Database.

Mengapa bentuk rencana kueri?

Bentuk rencana kueri mengacu pada representasi visual dari berbagai operator yang membentuk rencana kueri. Ini termasuk operator seperti pencarian, pemindaian, gabungan, dan pengurutan, serta koneksi di antara mereka yang menunjukkan aliran data dan urutan operasi yang harus dijalankan untuk menghasilkan tataan hasil yang dimaksudkan. Bentuk rencana kueri ditentukan oleh Pengoptimal Kueri.

Agar performa kueri tetap dapat diprediksi selama peningkatan, salah satu tujuan dasarnya adalah memastikan bentuk rencana kueri yang sama digunakan. Ini dapat dicapai dengan tidak mengubah tingkat kompatibilitas database segera setelah peningkatan, meskipun Mesin Database yang mendasar memiliki versi yang berbeda. Jika tidak ada yang berubah dalam ekosistem eksekusi kueri, seperti perubahan signifikan dalam sumber daya yang tersedia, atau distribusi data dalam data yang mendasar, performa kueri harus tetap tidak berubah.

Namun, menjaga bentuk rencana kueri bukanlah satu-satunya faktor yang mungkin memiliki implikasi performa setelah peningkatan. Jika Anda memindahkan database ke Mesin Database yang lebih baru dan juga membuat perubahan lingkungan, Anda mungkin memperkenalkan faktor-faktor yang akan berdampak langsung pada performa kueri, bahkan jika rencana kueri mempertahankan bentuk yang sama di seluruh versi. Perubahan lingkungan ini dapat mencakup Mesin Database baru yang memiliki lebih banyak atau kurang memori dan sumber daya CPU yang tersedia, perubahan pada opsi konfigurasi server atau database, atau perubahan pada distribusi data yang memengaruhi cara rencana kueri dibuat. Inilah sebabnya mengapa penting untuk dipahami bahwa mempertahankan tingkat kompatibilitas database melindungi dari perubahan bentuk rencana kueri, tetapi tidak menawarkan perlindungan dari aspek lingkungan lain yang memengaruhi performa kueri, beberapa di antaranya adalah perubahan yang dimulai pengguna.

Untuk informasi selengkapnya, lihat Panduan Arsitektur Pemrosesan Kueri.

Manfaat sertifikasi kompatibilitas

Ada beberapa manfaat langsung untuk sertifikasi database sebagai pendekatan berbasis kompatibilitas daripada pendekatan versi bernama:

  • Memisahkan sertifikasi aplikasi dari platform. Karena Mesin Database bersamanya, untuk aplikasi yang hanya perlu menjalankan kueri Transact-SQL, tidak perlu mempertahankan proses sertifikasi terpisah untuk Azure dan lokal.
  • Mengurangi risiko peningkatan karena selama modernisasi platform database, siklus peningkatan lapisan platform aplikasi dan database dapat dipisahkan untuk lebih sedikit gangguan, dan manajemen perubahan yang ditingkatkan.
  • Tingkatkan tanpa perubahan kode. Memutakhirkan ke versi baru SQL Server atau database Azure SQL dapat dilakukan tanpa perubahan kode dengan menjaga tingkat kompatibilitas yang sama dengan sistem sumber, dan tidak perlu mensertifikasi ulang sampai saat aplikasi perlu menggunakan penyempurnaan yang hanya tersedia dalam tingkat kompatibilitas database yang lebih tinggi.
  • Meningkatkan pengelolaan dan skalabilitas tanpa memerlukan perubahan aplikasi, menggunakan penyempurnaan yang tidak terjaga oleh tingkat kompatibilitas database. Dalam SQL Server ini termasuk misalnya:

Database baru masih diatur ke tingkat kompatibilitas default versi Mesin Database. Tetapi ketika database dipulihkan atau dilampirkan dari versi SQL Server sebelumnya ke versi baru database SQL Server atau Azure SQL, database mempertahankan tingkat kompatibilitas yang ada.

Penting

Sebelum memindahkan database ke versi baru SQL Server atau Azure SQL Database, verifikasi apakah tingkat kompatibilitas database masih didukung. Matriks dukungan tingkat kompatibilitas database dapat dilihat di sini.

Meningkatkan database dengan tingkat kompatibilitas yang lebih rendah dari tingkat yang diizinkan (misalnya, 90 yang merupakan default di SQL Server 2005 (9.x)), mengatur database ke tingkat kompatibilitas terendah yang diizinkan (100).

Untuk menentukan tingkat kompatibilitas saat ini, kueri kolom compatibility_levelsys.databases.

Tingkat kompatibilitas dan peningkatan mesin database

Untuk meningkatkan Mesin Database ke versi terbaru, sambil mempertahankan tingkat kompatibilitas database yang ada sebelum peningkatan dan status dukungannya, disarankan untuk melakukan validasi area permukaan fungsional statis dari kode aplikasi dalam database (objek kemampuan pemrograman seperti prosedur tersimpan, fungsi, pemicu, dan lainnya) dan dalam aplikasi (menggunakan jejak beban kerja yang menangkap kode dinamis yang dikirim oleh aplikasi).

Ini dapat dengan mudah dilakukan dengan menggunakan alat Asisten Migrasi Data Microsoft (DMA). Tidak adanya kesalahan dalam output alat DMA, tentang fungsionalitas yang hilang atau tidak kompatibel, melindungi aplikasi dari regresi fungsional apa pun pada versi target baru. Jika perubahan diperlukan untuk memastikan database Anda akan berfungsi dalam versi baru, maka DMA akan memungkinkan Anda menentukan di mana perubahan diperlukan, dan solusi apa yang tersedia. Untuk informasi selengkapnya, lihat Gambaran Umum Asisten Migrasi Data.

Tip

Validasi fungsional ini sangat penting saat memindahkan database dari versi warisan (seperti SQL Server 2008 R2 (10.50.x) atau SQL Server 2012 (11.x)) ke versi baru database SQL Server atau Azure SQL, karena kode aplikasi Anda mungkin menggunakan Transact-SQL yang dihentikan yang tidak dilindungi oleh tingkat kompatibilitas database. Tetapi ketika berpindah dari versi yang lebih baru (seperti SQL Server 2016 (13.x)) ke SQL Server 2019 (15.x) atau Azure SQL Database, tidak ada Transact-SQL yang dihentikan untuk dikhawatirkan. Untuk informasi selengkapnya tentang Transact-SQL yang dihentikan, lihat Menggunakan tingkat kompatibilitas untuk kompatibilitas mundur.

Catatan

DMA mendukung tingkat kompatibilitas database 100 ke atas. SQL Server 2005 (9.x) sebagai versi sumber dikecualikan.

Penting

Microsoft menyarankan agar beberapa pengujian minimal dilakukan untuk memvalidasi keberhasilan peningkatan, sambil mempertahankan tingkat kompatibilitas database sebelumnya. Anda harus menentukan arti pengujian minimal untuk aplikasi dan skenario Anda sendiri.

Penting

Microsoft menyediakan perlindungan bentuk rencana kueri saat:

  • Versi SQL Server baru (target) berjalan pada perangkat keras yang sebanding dengan perangkat keras tempat versi SQL Server sebelumnya (sumber) berjalan.
  • Tingkat kompatibilitas database yang didukung yang sama digunakan baik pada SQL Server target maupun SQL Server sumber.
  • Database dan beban kerja yang sama digunakan baik pada SQL Server target maupun SQL Server sumber.

Setiap regresi bentuk rencana kueri (dibandingkan dengan SQL Server sumber) yang terjadi dalam kondisi di atas akan ditangani. Silakan hubungi Dukungan Pelanggan Microsoft jika demikian.

Lihat juga