Penasihat Distribusi di SQL Azure Synapse
Berlaku untuk: kumpulan SQL khusus Azure Synapse Analytics (sebelumnya SQL DW)
Di SQL Azure Synapse, setiap tabel didistribusikan menggunakan strategi yang dipilih oleh pelanggan (Round Robin, Hash Terdistribusi, Direplikasi). Strategi distribusi yang dipilih dapat mempengaruhi performa kueri secara substansial.
Fitur Penasihat Distribusi (DA) dari SQL Azure Synapse menganalisis kueri pelanggan dan merekomendasikan strategi distribusi terbaik untuk tabel guna meningkatkan performa kueri. Pertanyaan yang akan dipertimbangkan oleh penasihat dapat diberikan oleh pelanggan atau diambil dari pertanyaan historis yang tersedia di DMV.
Catatan
Penasihat Distribusi saat ini dalam pratinjau untuk Azure Synapse Analytics. Fitur pratinjau dimaksudkan hanya untuk pengujian dan tidak boleh digunakan pada instans produksi atau data produksi. Sebagai fitur pratinjau, Penasihat Distribusi dapat mengalami perubahan perilaku atau fungsionalitas. Harap simpan juga salinan data pengujian Anda jika data tersebut penting. Distribution Advisor tidak mendukung tabel terdistribusi Multi-Kolom.
Prasyarat
Jalankan pernyataan T-SQL
SELECT @@version
untuk memastikan bahwa kumpulan SQL khusus Azure Synapse Analytics Anda adalah versi 10.0.15669 atau yang lebih tinggi. Jika versi Anda lebih rendah, versi baru akan secara otomatis mencapai kumpulan SQL khusus yang Anda sediakan selama siklus pemeliharaannya.Pastikan bahwa statistik tersedia dan terkini sebelum menjalankan penasihat. Untuk detail selengkapnya, artikel Kelola statistik tabel, BUAT STATISTIK, dan PERBARUI untuk detail selengkapnya tentang statistik.
Aktifkan penasihat distribusi Azure Synapse untuk sesi saat ini dengan perintah SET RECOMMENDATIONS T-SQL.
Menganalisis beban kerja dan menghasilkan rekomendasi distribusi
Tutorial berikut menjelaskan contoh kasus penggunaan fitur Penasihat Distribusi untuk menganalisis kueri pelanggan dan merekomendasikan strategi distribusi terbaik.
Penasihat Distribusi hanya menganalisis kueri yang dijalankan pada tabel pengguna.
1. Membuat prosedur tersimpan Penasihat Distribusi
Untuk menjalankan penasihat dengan mudah, buat dua prosedur tersimpan baru di database. Jalankan skrip CreateDistributionAdvisor_PublicPreview yang tersedia untuk diunduh dari GitHub:
Perintah | Deskripsi |
---|---|
dbo.write_dist_recommendation |
Mendefinisikan kueri yang akan dianalisis oleh DA. Anda dapat memberikan kueri secara manual, atau membaca hingga 100 kueri sebelumnya dari beban kerja sebenarnya di sys.dm_pdw_exec_requests. |
dbo.read_dist_recommendation |
Menjalankan penasihat dan menghasilkan rekomendasi. |
Berikut adalah contoh bagaimana Anda dapat menjalankan penasihat.
2a. Jalankan penasihat pada beban kerja sebelumnya di DMV
Jalankan perintah berikut untuk membaca hingga 100 kueri terakhir dalam beban kerja untuk analisis dan rekomendasi distribusi:
EXEC dbo.write_dist_recommendation <Number of Queries max 100>, NULL
go
EXEC dbo.read_dist_recommendation;
go
Untuk melihat kueri mana yang dianalisis oleh DA, jalankan skrip e2e_queries_used_for_recommendations.sql yang tersedia untuk diunduh dari GitHub.
2b. Menjalankan penasihat pada kueri yang dipilih
Parameter pertama di dbo.write_dist_recommendation
harus diatur ke 0
, dan parameter kedua adalah daftar yang dipisahkan titik koma hingga 100 kueri yang akan dianalisis DA. Pada contoh di bawah ini, kami ingin melihat rekomendasi distribusi untuk dua pernyataan yang dipisahkan oleh titik koma, select count (*) from t1;
dan select * from t1 join t2 on t1.a1 = t2.a1;
.
EXEC dbo.write_dist_recommendation 0, 'select count (*) from t1; select * from t1 join t2 on t1.a1 = t2.a1;'
go
EXEC dbo.read_dist_recommendation;
go
3. Melihat rekomendasi
Prosedur tersimpan sistem dbo.read_dist_recommendation
akan menampilkan rekomendasi dalam format berikut saat eksekusi selesai:
Nama kolom | Keterangan |
---|---|
Table_name | Tabel yang dianalisis DA. Satu baris per tabel terlepas dari adanya perubahan rekomendasi. |
Current_Distribution | Strategi distribusi tabel saat ini. |
Recommended_Distribution | Distribusi yang direkomendasikan. Distribusi ini bisa sama dengan Current_Distribution jika tidak ada perubahan yang disarankan. |
Distribusi_Ubah_Perintah | Perintah CTAS T-SQL untuk mengimplementasikan rekomendasi. |
4. Menerapkan saran
- Jalankan perintah CTAS yang disediakan oleh Penasihat Distribusi untuk membuat tabel baru dengan strategi distribusi yang direkomendasikan.
- Ubah kueri untuk dijalankan di tabel baru.
- Jalankan kueri pada tabel lama dan baru untuk membandingkan peningkatan performa.
Catatan
Untuk membantu kami meningkatkan Distribution Advisor, silakan isi survei cepat ini.
Pemecahan Masalah
Bagian ini berisi skenario pemecahan masalah umum dan kesalahan umum yang mungkin Anda temui.
1. Status kedaluarsa dari eksekusi penasihat sebelumnya
1a. Gejala:
Anda melihat pesan kesalahan ini saat menjalankan penasihat:
Msg 110813, Level 16, State 1, Line 1
Calling GetLastScalarResult() before executing scalar subquery.
1b. Mitigasi:
- Verifikasi bahwa Anda menggunakan tanda kutip tunggal '' untuk menjalankan penasihat pada kueri tertentu.
- Mulai sesi baru di SSMS dan jalankan penasihat.
2. Kesalahan saat menjalankan penasihat
2a. Gejala:
Panel 'hasil' menampilkan CommandToInvokeAdvisorString
di bawah ini, tetapi tidak menampilkan RecommendationOutput
di bawah ini.
Misalnya, Anda hanya melihat kumpulan hasil Command_to_Invoke_Distribution_Advisor
.
Tapi bukan kumpulan hasil kedua yang berisi tabel yang mengubah perintah T-SQL:
2b. Mitigasi:
Periksa output
CommandToInvokeAdvisorString
di atas.Hapus kueri yang mungkin tidak valid lagi yang mungkin telah ditambahkan di sini baik dari kueri yang dipilih sendiri maupun dari DMV dengan mengedit klausa
WHERE
di: Permintaan yang Dipertimbangkan oleh DA.
3. Kesalahan selama pasca-pemrosesan output rekomendasi
3a. Gejala:
Anda melihat pesan kesalahan berikut.
Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Mitigasi:
Pastikan Anda memiliki versi prosedur tersimpan terbaru dari GitHub:
skrip e2e_queries_used_for_recommendations.sql tersedia untuk diunduh dari GitHub
skrip CreateDistributionAdvisor_PublicPreview.sql tersedia untuk diunduh dari GitHub
Tanggapan grup produk Azure Synapse
Untuk membantu kami meningkatkan Distribution Advisor, silakan isi survei cepat ini.
Jika Anda memerlukan informasi yang tidak tersedia di artikel ini, mencari Microsoft Q&A halaman pertanyaan untuk Azure Synapse adalah tempat Anda untuk mengajukan pertanyaan kepada pengguna lain dan ke Grup Produk Azure Synapse Analytics.
Kami secara aktif memantau forum ini untuk memastikan bahwa pertanyaan Anda dijawab baik oleh pengguna lain atau salah satu dari kami. Jika Anda lebih suka mengajukan pertanyaan anda di Stack Overflow, kami juga memiliki Azure Synapse Analytics Stack Overflow Forum internet.
Untuk permintaan fitur, gunakan halaman Umpan Balik Azure Synapse Analytics. Menambahkan permintaan Anda atau melakukan up-vote pada permintaan lain membantu kami untuk fokus pada fitur yang paling diminati.
Langkah berikutnya
- MENETAPKAN REKOMENDASI (Transact-SQL)
- Memuat data ke kumpulan SQL khusus
- Strategi pemuatan data untuk kumpulan SQL khusus di Azure Synapse Analytics.
- Arsitektur kumpulan SQL khusus (sebelumnya SQL DW) di Azure Synapse Analytics
- Contekan untuk kumpulan SQL khusus (sebelumnya SQL DW) di Azure Synapse Analytics