Bagikan melalui


Penasihat Distribusi di Azure Synapse SQL

Berlaku untuk: Kumpulan SQL khusus Azure Synapse Analytics (sebelumnya SQL DW)

Di Azure Synapse SQL, setiap tabel didistribusikan menggunakan strategi yang dipilih oleh pelanggan (Round Robin, Hash Distributed, Replicated). Strategi distribusi yang dipilih dapat memengaruhi performa kueri secara substansial.

Fitur Distribution Advisor (DA) Azure Synapse SQL menganalisis kueri pelanggan dan merekomendasikan strategi distribusi terbaik untuk tabel guna meningkatkan performa kueri. Kueri yang akan dipertimbangkan oleh penasihat dapat disediakan oleh pelanggan, atau diambil dari kueri bersejarah yang tersedia di DMV.

Nota

Distribution Advisor 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, Distribution Advisor dapat mengalami perubahan perilaku atau fungsionalitas. Simpan juga salinan data pengujian Anda jika data penting. Distribution Advisor tidak mendukung tabel terdistribusi multi-kolom.

Prasyarat

  • Jalankan pernyataan SELECT @@version T-SQL untuk memastikan bahwa kumpulan SQL khusus Azure Synapse Analytics Anda adalah versi 10.0.15669 atau lebih tinggi. Jika versi Anda lebih rendah, versi baru akan secara otomatis mencapai kumpulan SQL khusus yang disediakan selama siklus pemeliharaannya.

  • Pastikan statistik tersedia dan up-to-date sebelum menjalankan advisor. Untuk detail selengkapnya, Kelola statistik tabel, BUAT STATISTIK, dan PERBARUI STATISTIK artikel 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 untuk menggunakan fitur Distribution Advisor untuk menganalisis kueri pelanggan dan merekomendasikan strategi distribusi terbaik.

Distribution Advisor hanya menganalisis kueri yang dijalankan pada tabel pengguna.

1. Buat sebuah prosedur yang disimpan Distribution Advisor

Untuk menjalankan advisor dengan mudah, buat dua prosedur tersimpan baru dalam database. Jalankan skrip CreateDistributionAdvisor_PublicPreview yang tersedia untuk diunduh dari GitHub:

Perintah Deskripsi
dbo.write_dist_recommendation Menentukan kueri yang akan dianalisis DA. Anda dapat menyediakan kueri secara manual, atau membaca dari hingga 100 kueri sebelumnya dari beban kerja aktual di sys.dm_pdw_exec_requests.
dbo.read_dist_recommendation Menjalankan advisor dan menghasilkan rekomendasi.

Berikut adalah contoh bagaimana Anda bisa mengoperasikan penasihat.

2a. Jalankan penasihat terhadap 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. Jalankan advisor pada kueri yang dipilih

Parameter pertama dalam dbo.write_dist_recommendation harus diatur ke 0, dan parameter kedua adalah daftar yang dipisahkan oleh titik koma hingga 100 kueri yang akan dianalisis DA. Dalam contoh di bawah ini, kita 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. Lihat rekomendasi

Prosedur dbo.read_dist_recommendation tersimpan sistem akan mengembalikan rekomendasi dalam format berikut ketika eksekusi selesai:

Nama kolom Deskripsi
Table_name Tabel yang dianalisis DA. Satu baris per tabel, tidak peduli adanya perubahan rekomendasi.
Distribusi Arus Strategi distribusi tabel saat ini.
Distribusi yang Direkomendasikan Distribusi yang direkomendasikan. Ini bisa sama seperti Current_Distribution jika tidak ada perubahan yang direkomendasikan.
Perintah_Perubahan_Distribusi Perintah CTAS T-SQL untuk mengimplementasikan rekomendasi.

4. Terapkan saran

  • Jalankan perintah CTAS yang disediakan oleh Distribution Advisor untuk membuat tabel baru dengan strategi distribusi yang direkomendasikan.
  • Ubah kueri untuk dijalankan pada tabel baru.
  • Jalankan kueri pada tabel lama dan baru untuk membandingkan peningkatan performa.

Nota

Untuk membantu kami meningkatkan Distribution Advisor, 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 advisor:

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 advisor pada kueri tertentu.
  • Mulai sesi baru di SSMS dan jalankan advisor.

2. Kesalahan saat menjalankan penasihat sistem

2a. Gejala:

Panel 'hasil' memperlihatkan CommandToInvokeAdvisorString di bawah ini tetapi tidak memperlihatkan hal di RecommendationOutput bawah ini.

Misalnya, Anda hanya melihat himpunan hasil Command_to_Invoke_Distribution_Advisor.

Cuplikan layar output hasil T-SQL yang menunjukkan Command_to_Invoke_Distribution_Advisor.

Tetapi bukan set hasil kedua yang berisi perintah T-SQL perubahan tabel:

Cuplikan layar dari output hasil T-SQL yang memperlihatkan Command_to_Invoke_Distribution_Advisor dengan dataset kedua yang berisi perintah T-SQL untuk perubahan tabel.

2b. Mitigasi:
  • Periksa output pada CommandToInvokeAdvisorString di atas.

  • Hapus kueri yang mungkin sudah tidak valid lagi, yang mungkin telah ditambahkan dari kueri yang dipilih secara manual atau dari DMV dengan mengedit klausa WHERE dalam: Kueri Dipertimbangkan oleh DA.

3. Kesalahan selama pasca-pemrosesan output rekomendasi

3a. Gejala:

Anda akan melihat pesan kesalahan berikut.

Invalid length parameter passed to the LEFT or SUBSTRING function.
3b. Mitigasi:

Pastikan Anda memiliki versi terbaru dari prosedur tersimpan dari GitHub:

Umpan balik grup produk Azure Synapse

Untuk membantu kami meningkatkan Distribution Advisor, 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 meningkatkan pemungutan suara permintaan lain membantu kami untuk fokus pada fitur yang paling sesuai permintaan.

Langkah berikutnya