Buat Panduan Paket Baru

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

Panduan rencana memengaruhi pengoptimalan kueri dengan melampirkan petunjuk kueri atau rencana kueri tetap kepada mereka. Dalam panduan paket, Anda menentukan pernyataan yang ingin Anda optimalkan, dan klausa OPTION yang berisi petunjuk kueri yang ingin Anda gunakan. atau paket kueri tertentu yang ingin Anda gunakan untuk mengoptimalkan kueri. Saat kueri dijalankan, pengoptimal kueri cocok dengan pernyataan Transact-SQL dengan panduan paket dan melampirkan klausa OPTION ke kueri pada waktu proses atau menggunakan rencana kueri yang ditentukan.

Panduan Paket menerapkan rencana kueri tetap, dan/atau petunjuk kueri, ke kueri.

Pembatasan dan batasan

  • Argumen untuk sp_create_plan_guide harus disediakan dalam urutan yang ditampilkan. Saat Anda menyediakan nilai untuk parameter sp_create_plan_guide, semua nama parameter harus ditentukan secara eksplisit, atau tidak sama sekali. Misalnya, jika @name = ditentukan, maka @stmt = , @type =, dan sebagainya, juga harus ditentukan. Demikian juga, jika @name = dihilangkan dan hanya nilai parameter yang disediakan, nama parameter yang tersisa juga harus dihilangkan, dan hanya nilainya yang disediakan. Nama argumen hanya untuk tujuan deskriptif, untuk membantu memahami sintaks. SQL Server tidak memverifikasi bahwa nama parameter yang ditentukan cocok dengan nama untuk parameter di posisi tempat nama digunakan.

  • Anda dapat membuat lebih dari satu panduan paket OBJECT atau SQL untuk kueri dan batch atau modul yang sama. Namun, hanya satu panduan paket yang dapat diaktifkan pada waktu tertentu.

  • Panduan paket jenis OBJECT tidak dapat dibuat untuk @module_or_batch nilai yang mereferensikan prosedur tersimpan, fungsi, atau pemicu DML yang menentukan klausa WITH ENCRYPTION atau yang bersifat sementara.

  • Mencoba menghilangkan atau mengubah fungsi, prosedur tersimpan, atau pemicu DML yang dirujuk oleh panduan paket, baik diaktifkan atau dinonaktifkan, menyebabkan kesalahan. Mencoba menghilangkan tabel yang memiliki pemicu yang ditentukan di atasnya yang dirujuk oleh panduan rencana juga menyebabkan kesalahan.

Izin

Untuk membuat panduan paket jenis OBJECT, Anda memerlukan izin UBAH pada objek yang dirujuk. Untuk membuat panduan paket jenis SQL atau TEMPLAT, Anda memerlukan izin UBAH pada database saat ini.

Membuat panduan paket menggunakan SSMS

  1. Klik tanda plus untuk memperluas database tempat Anda ingin membuat panduan paket, lalu klik tanda plus untuk memperluas folder Programmability .

  2. Klik kanan folder Panduan Paket dan pilih Panduan Paket Baru....select_plan_guide

  3. Dalam kotak dialog Panduan Paket Baru, dalam kotak Nama , masukkan nama panduan paket.

  4. Dalam kotak Pernyataan , masukkan pernyataan Transact-SQL tempat panduan rencana akan diterapkan.

  5. Dalam daftar Jenis cakupan, pilih jenis entitas tempat pernyataan Transact-SQL muncul. Ini menentukan konteks untuk mencocokkan pernyataan Transact-SQL dengan panduan rencana. Nilai yang mungkin adalah OBJECT, SQL, dan TEMPLATE.

  6. Dalam kotak Batch Cakupan, masukkan teks batch tempat pernyataan Transact-SQL muncul. Teks batch tidak dapat menyertakan USEpernyataan database . Kotak Batch cakupan hanya tersedia saat SQL dipilih sebagai jenis cakupan. Jika tidak ada yang dimasukkan dalam kotak batch cakupan saat SQL adalah jenis cakupan, maka nilai teks batch diatur ke nilai yang sama seperti dalam kotak Pernyataan .

  7. Dalam daftar Nama skema cakupan, masukkan nama skema tempat objek dimuat. Kotak Nama skema cakupan hanya tersedia saat Objek dipilih sebagai jenis cakupan.

  8. Dalam kotak Nama objek cakupan, masukkan nama prosedur tersimpan Transact-SQL, fungsi skalar yang ditentukan pengguna, fungsi bernilai tabel multistatement, atau pemicu DML tempat pernyataan Transact-SQL muncul. Kotak Nama objek cakupan hanya tersedia saat Objek dipilih sebagai jenis cakupan.

  9. Dalam kotak Parameter , masukkan nama parameter dan jenis data dari semua parameter yang disematkan dalam pernyataan Transact-SQL.

    Parameter hanya berlaku jika salah satu dari berikut ini benar:

    • Jenis cakupannya adalah SQL atau TEMPLATE. Jika TEMPLAT, parameter tidak boleh NULL.

    • Pernyataan Transact-SQL dikirimkan dengan menggunakan sp_executesql dan nilai untuk parameter ditentukan, atau SQL Server secara internal mengirimkan pernyataan setelah membuat parameter.

  10. Dalam kotak Petunjuk , masukkan petunjuk kueri atau rencana kueri yang akan diterapkan ke pernyataan Transact-SQL. Untuk menentukan satu atau beberapa petunjuk kueri, masukkan klausa OPTION yang valid.

  11. Klik OK.

plan_guide

Membuat panduan paket menggunakan T-SQL

  1. Di Object Explorer, sambungkan ke instans Mesin Database.

  2. Pada bilah Standar, klik Kueri Baru.

  3. Salin dan tempel contoh berikut ke dalam jendela kueri dan klik Jalankan.

    -- creates a plan guide named Guide1 based on a SQL statement  
    EXEC sp_create_plan_guide   
        @name = N'Guide1',   
        @stmt = N'SELECT TOP 1 *   
                  FROM Sales.SalesOrderHeader   
                  ORDER BY OrderDate DESC',   
        @type = N'SQL',  
        @module_or_batch = NULL,   
        @params = NULL,   
        @hints = N'OPTION (MAXDOP 1)';  
    
    

Untuk informasi selengkapnya, lihat sp_create_plan_guide (Transact-SQL).