Bagikan melalui


Sertifikasi kompatibilitas

Berlaku untuk: SQL ServerAzure SQL Database Azure 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 SQL Server dan Azure SQL Database (termasuk Azure SQL Managed Instance). Mesin Database bersama ini berarti bahwa database pengguna dapat dipindahkan dengan mulus antara SQL Server lokal dan Azure SQL Database, sementara kode aplikasi yang dijalankan dalam database karena Transact-SQL terus berfungsi seperti yang terjadi 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 mengerjakan 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 di SQL Server 2016 (13.x) disertifikasi secara implisit 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 Azure SQL Database, selama tingkat kompatibilitas database disimpan sebagai 130.

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

Ini juga merupakan cara sertifikasi SharePoint Server 2016 dan SharePoint Server 2019 di SQL Server dan Azure SQL Managed Instance, memungkinkan Anda menyebarkan Mesin Database SQL Server apa pun 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 berharga untuk modernisasi database. Dengan mensertifikasi berdasarkan tingkat kompatibilitas, pengembang menetapkan persyaratan teknis agar aplikasi didukung di SQL Server dan Azure SQL Database, tetapi memisahkan siklus hidup aplikasi dari siklus hidup platform database. Ini memungkinkan perusahaan untuk menjaga mesin database SQL Server 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 peningkatan apa pun. 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 yang lebih lama 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 mengalami 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 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 ke 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 paket 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 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 mendasarnya 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 lain 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:

  • Decouple 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 gangguan yang lebih sedikit, dan peningkatan manajemen perubahan.
  • Tingkatkan tanpa perubahan kode. Meningkatkan ke versi baru SQL Server atau Azure SQL Database dapat dilakukan tanpa perubahan kode dengan mempertahankan tingkat kompatibilitas yang sama dengan sistem sumber, dan tidak perlu mensertifikasi ulang sampai saat aplikasi perlu menggunakan peningkatan 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. Di 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 yang lebih lama ke versi baru SQL Server atau Azure SQL Database, 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_level sys.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 lama (seperti SQL Server 2008 R2 (10.50.x) atau SQL Server 2012 (11.x)) ke versi baru SQL Server atau Azure SQL Database, karena kode aplikasi Anda mungkin menggunakan Transact-SQL 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 (sumber) sebelumnya berjalan.
  • Tingkat kompatibilitas database yang didukung yang sama digunakan baik di SQL Server target maupun SQL Server sumber.
  • Database dan beban kerja yang sama digunakan baik di SQL Server target maupun SQL Server sumber.

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

Lihat juga