Performa cerdas

Selesai

SQL Server dan Azure SQL menyertakan otomatisasi untuk membantu memberikan kinerja yang konsisten untuk aplikasi Anda. Kemampuan otomatisasi ini secara kolektif disebut performa cerdas.

Kinerja cerdas untuk Azure SQL mencakup pemrosesan kueri cerdas, koreksi paket otomatis, dan penyetelan otomatis.

Pemrosesan kueri cerdas

Intelligent query processing (IQP) adalah serangkaian kemampuan baru yang disertakan dalam prosesor kueri. Anda mengaktifkannya dengan menggunakan tingkat kompatibilitas database terbaru. Aplikasi dapat memperoleh performa dengan menggunakan tingkat kompatibilitas database terbaru. Tidak ada perubahan kode yang diperlukan. Contoh IQP adalah variabel tabel dengan kompilasi ditangguhkan untuk membantu membuat kueri yang menggunakan variabel tabel berjalan lebih cepat.

Azure SQL Database dan Azure SQL Managed Instance mendukung tingkat kompatibilitas database yang sama yang diperlukan (150) untuk menggunakan IQP sebagai SQL Server 2019 dan versi yang lebih baru.

Koreksi paket otomatis

Regresi rencana kueri mewakili salah satu masalah kinerja yang paling sulit untuk dipecahkan dengan SQL Server. Regresi rencana kueri terjadi ketika kueri yang sama disusun ulang dan rencana baru menghasilkan kinerja yang lebih buruk.

SQL Server 2017 dan Azure SQL Database memperkenalkan konsep koreksi paket otomatis dengan menganalisis data di Query Store. Saat Anda mengaktifkan Query Store dengan database di SQL Server 2017 (atau yang lebih baru) dan di Azure SQL Database, mesin SQL Server mencari regresi rencana kueri dan memberikan rekomendasi. Anda dapat melihat rekomendasi ini dalam sys.dm_db_tuning_recommendations tampilan manajemen dinamis (DMV). Rekomendasi ini termasuk pernyataan T-SQL untuk memaksa rencana kueri secara manual ketika kinerja dalam keadaan baik.

Jika Anda mendapatkan kepercayaan pada rekomendasi ini, Anda dapat mengaktifkan SQL Server untuk memaksa rencana secara otomatis ketika regresi ditemui. Aktifkan koreksi paket otomatis dengan menggunakan ALTER DATABASE dan AUTOMATIC_TUNING argumen .

Untuk Azure SQL Database, Anda juga dapat mengaktifkan koreksi paket otomatis melalui opsi penyetelan otomatis di portal Microsoft Azure atau API REST. Rekomendasi koreksi paket otomatis selalu diaktifkan untuk database mana pun di mana Penyimpanan Kueri diaktifkan (yang merupakan default untuk Azure SQL Database dan Azure SQL Managed Instance). Untuk database baru, koreksi paket otomatis (FORCE_PLAN) diaktifkan secara default untuk Azure SQL Database.

Penyetelan otomatis untuk Azure SQL Database

Koreksi paket otomatis adalah contoh penyetelan otomatis di Azure SQL dan SQL Server, tetapi aspek unik untuk penyetelan otomatis untuk Azure SQL Database adalah pengindeksan otomatis.

Catatan

Pengindeksan otomatis saat ini tidak tersedia di SQL Managed Instance.

Cloud menyediakan metode bagi Microsoft untuk menyediakan layanan tambahan dalam bentuk rekomendasi kinerja dan otomatisasi di luar rekomendasi rencana. Kemampuan ini dikenal sebagai penyetelan otomatis untuk Azure SQL Database. Layanan ini berjalan sebagai program latar belakang yang menganalisis data kinerja dari contoh Azure SQL Database. Layanan ini termasuk dalam harga langganan database apa pun.

Skenario utama penyetelan otomatis dirancang untuk mengatasi berkaitan dengan indeks. Penyetelan otomatis menganalisis data dari telemetri database, termasuk Penyimpanan Kueri dan DMV, untuk merekomendasikan indeks yang akan dibuat yang dapat meningkatkan performa aplikasi. Selain itu, Anda dapat mengaktifkan penyetelan otomatis untuk membuat indeks secara otomatis yang dapat meningkatkan kinerja kueri. Penyetelan otomatis juga memantau perubahan indeks, dan merekomendasikan penurunan atau penurunan indeks secara otomatis yang tidak meningkatkan kinerja kueri.

Penyetelan otomatis untuk Azure SQL Database mengambil pendekatan konservatif untuk merekomendasikan indeks. Ini berarti bahwa rekomendasi yang mungkin muncul di DMV seperti sys.dm_db_missing_index_details, atau rencana peragaan kueri, mungkin tidak segera muncul sebagai rekomendasi untuk penyetelan otomatis. Layanan penyetelan otomatis memantau kueri dari waktu ke waktu dan menggunakan algoritma pembelajaran mesin untuk membuat rekomendasi agar benar-benar memengaruhi performa kueri.

Ketahuilah bahwa penyetelan otomatis untuk rekomendasi indeks tidak memperhitungkan kinerja overhead apa pun yang dapat disebabkan indeks pada operasi Anda, seperti sisipan, pembaruan, atau penghapusan. Biasanya, indeks nonclustered baru yang dibuat fitur indeks otomatis memiliki dampak performa positif utama.

Kueri yang di parameter mewakili skenario tambahan untuk penyetelan otomatis. Kueri dengan nilai non-parameter dapat menyebabkan overhead performa, karena rencana eksekusi dikompresi ulang setiap kali nilai yang tidak diparameterkan berbeda. Dalam banyak kasus, kueri yang sama dengan nilai parameter yang berbeda menghasilkan rencana eksekusi yang sama. Namun, rencana ini masih ditambahkan secara terpisah ke cache rencana. Proses pendampingan ulang paket eksekusi menggunakan sumber daya database, meningkatkan waktu durasi kueri, dan meluapkan singgahan rencana. Peristiwa ini, pada gilirannya, menyebabkan rencana untuk dikeluarkan dari tembolok.

Anda dapat menggunakan pengoptimalan Parameter Sensitif Plan (PSP) untuk mengatasi skenario ini. Pengoptimalan PSP secara otomatis memungkinkan beberapa paket cache aktif untuk satu pernyataan berparameter. Rencana eksekusi cache mengakomodasi ukuran data yang berbeda berdasarkan nilai parameter runtime yang disediakan pelanggan.

Contoh indeks dengan penyetelan otomatis di Azure SQL Database

Berikut ini adalah contoh dari portal Microsoft Azure, di mana indeks direkomendasikan untuk database berdasarkan analisis beban kerja dari waktu ke waktu. Kami belum mengirim aktivitas yang cukup ke kotak pasir Azure SQL Database Anda untuk menghasilkan rekomendasi seperti ini. CREATE INDEX rekomendasi dihasilkan dari waktu ke waktu saat beban kerja Anda ditangkap, dan bukan dalam jangka waktu kecil latihan ini.

Screenshot of index recommendation notification.

Di portal Azure, di Gambaran Umum Performa, Anda bisa melihat informasi performa untuk lima kueri yang menggunakan sumber daya teratas, seperti yang ditemukan di Penyimpanan Kueri. Ada juga rekomendasi.

Screenshot of Query Performance Overview.

Portal Microsoft Azure juga menawarkan Wawasan Kinerja Kueri, yang merupakan alat pelaporan visual berdasarkan Penyimpanan Kueri. Dalam contoh ini, Query Performance Insight memperlihatkan kueri tertentu yang menggunakan sumber daya terbanyak, dan menyarankan cara meningkatkan kinerja kueri.

Screenshot of Query Performance Insights.

Portal Microsoft Azure juga menyediakan cara langsung untuk melihat rekomendasi kinerja apa pun.

Screenshot of Performance Recommendations.

Dalam tampilan ini, Anda akan melihat rekomendasi tertentu, dan riwayat tindakan penyetelan otomatis apa pun. Dalam kasus indeks, detail indeks dan tabel diperlihatkan. Opsi Otomatisasi memungkinkan penyetelan otomatis.

Screenshot of automatic tuning options.

Anda dapat mengatur opsi penyetelan otomatis di server database atau tingkat database. Jika Anda mengaktifkan penyetelan otomatis dalam skenario ini, indeks akan dibuat secara otomatis.

Anda juga dapat melihat opsi penyetelan otomatis melalui sys.database_automatic_tuning_options DMV.

Catatan

Rekomendasi dan otomatisasi untuk indeks dan paket sensitif parameter tidak tersedia untuk Azure SQL Managed Instance atau SQL Server. Koreksi paket otomatis tersedia.

Jika Anda memilih indeks yang direkomendasikan, Anda akan mendapatkan detail lebih lanjut tentang indeks tertentu.

Screenshot of create index recommendation.

Anda akan melihat detail tentang indeks, tabel, dan ruang yang diperlukan. Anda memiliki opsi untuk menerapkan indeks yang direkomendasikan, atau untuk melihat skrip T-SQL yang menerapkan indeks.

Screenshot of the index recommendation script.

Perhatikan bahwa indeks adalah indeks non-kluster yang diterapkan sebagai indeks online. Ketika indeks telah diterapkan berdasarkan rekomendasi, baik secara manual atau melalui penyetelan otomatis, mesin rekomendasi juga memantau kinerja kueri selama periode waktu dengan indeks yang diterapkan. Jika kinerja kueri terdegradasi dibandingkan sebelum indeks diterapkan, Anda bisa menjatuhkan indeks.

Uji pengetahuan

1.

Mana yang terbaik menggambarkan Intelligent Query Processing (IQP)?

2.

Koreksi Paket Otomatis dapat membantu merekomendasikan dan memperbaiki jenis skenario kinerja mana?

3.

Penyetelan Otomatis untuk Azure SQL Database dapat merekomendasikan dan membuat indeks berdasarkan informasi apa?