sp_control_plan_guide (T-SQL)
Berlaku untuk:SQL Server
Menghilangkan, mengaktifkan, atau menonaktifkan panduan paket.
Sintaks
sp_control_plan_guide [ @operation = ] N'<control_option>'
[ , [ @name = ] N'plan_guide_name' ]
<control_option>::=
{
DROP
| DROP ALL
| DISABLE
| DISABLE ALL
| ENABLE
| ENABLE ALL
}
Argumen
N'plan_guide_name'
Menentukan panduan paket yang sedang dihilangkan, diaktifkan, atau dinonaktifkan. plan_guide_name diselesaikan ke database saat ini. Jika tidak ditentukan, plan_guide_name default ke NULL.
DROP
Menghilangkan panduan paket yang ditentukan oleh plan_guide_name. Setelah panduan rencana dihilangkan, eksekusi kueri di masa mendatang yang sebelumnya cocok dengan panduan rencana tidak dipengaruhi oleh panduan rencana.
HILANGKAN SEMUA
Menghapus semua panduan paket dalam database saat ini. N'plan_guide_name tidak dapat ditentukan ketika DROP ALL ditentukan.
MENONAKTIFKAN
Menonaktifkan panduan paket yang ditentukan oleh plan_guide_name. Setelah panduan paket dinonaktifkan, eksekusi kueri di masa mendatang yang sebelumnya cocok dengan panduan paket tidak dipengaruhi oleh panduan rencana.
NONAKTIFKAN SEMUA
Menonaktifkan semua panduan paket dalam database saat ini. N'plan_guide_name tidak dapat ditentukan ketika DISABLE ALL ditentukan.
AKTIFKAN
Mengaktifkan panduan paket yang ditentukan oleh plan_guide_name. Panduan paket dapat dicocokkan dengan kueri yang memenuhi syarat setelah diaktifkan. Secara default, panduan paket diaktifkan pada saat dibuat.
AKTIFKAN SEMUA
Mengaktifkan semua panduan paket dalam database saat ini. N'plan_guide_name**'**tidak dapat ditentukan saat AKTIFKAN SEMUA ditentukan.
Keterangan
Mencoba menghilangkan atau mengubah fungsi, prosedur tersimpan, atau pemicu DML yang dirujuk oleh panduan paket, baik diaktifkan atau dinonaktifkan, menyebabkan kesalahan.
Menonaktifkan panduan paket yang dinonaktifkan atau mengaktifkan panduan paket yang diaktifkan tidak berpengaruh dan berjalan tanpa kesalahan.
Panduan paket tidak tersedia di setiap edisi Microsoft SQL Server. Untuk daftar fitur yang didukung oleh edisi SQL Server, lihat Edisi dan fitur yang didukung SQL Server 2022. Namun, Anda dapat menjalankan sp_control_plan_guide dengan opsi DROP atau DROP ALL di SQL Server edisi apa pun.
Izin
Untuk menjalankan sp_control_plan_guide pada panduan paket jenis OBJECT (dibuat yang menentukan @type ='OBJECT' ) memerlukan izin ALTER pada objek yang direferensikan oleh panduan paket. Semua panduan paket lainnya memerlukan izin ALTER DATABASE.
Contoh
J. Mengaktifkan, menonaktifkan, dan menjatuhkan panduan paket
Contoh berikut membuat panduan paket, menonaktifkannya, mengaktifkannya, dan menghilangkannya.
--Create a procedure on which to define the plan guide.
IF OBJECT_ID(N'Sales.GetSalesOrderByCountry', N'P') IS NOT NULL
DROP PROCEDURE Sales.GetSalesOrderByCountry;
GO
CREATE PROCEDURE Sales.GetSalesOrderByCountry
(@Country nvarchar(60))
AS
BEGIN
SELECT *
FROM Sales.SalesOrderHeader AS h
INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID
INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID
WHERE t.CountryRegionCode = @Country;
END
GO
--Create the plan guide.
EXEC sp_create_plan_guide N'Guide3',
N'SELECT *
FROM Sales.SalesOrderHeader AS h
INNER JOIN Sales.Customer AS c ON h.CustomerID = c.CustomerID
INNER JOIN Sales.SalesTerritory AS t ON c.TerritoryID = t.TerritoryID
WHERE t.CountryRegionCode = @Country',
N'OBJECT',
N'Sales.GetSalesOrderByCountry',
NULL,
N'OPTION (OPTIMIZE FOR (@Country = N''US''))';
GO
--Disable the plan guide.
EXEC sp_control_plan_guide N'DISABLE', N'Guide3';
GO
--Enable the plan guide.
EXEC sp_control_plan_guide N'ENABLE', N'Guide3';
GO
--Drop the plan guide.
EXEC sp_control_plan_guide N'DROP', N'Guide3';
B. Menonaktifkan semua panduan paket dalam database saat ini
Contoh berikut menonaktifkan semua panduan paket dalam AdventureWorks2022
database.
USE AdventureWorks2022;
GO
EXEC sp_control_plan_guide N'DISABLE ALL';
Lihat Juga
Prosedur Tersimpan Mesin Database (Transact-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)
sp_create_plan_guide (T-SQL)
sys.plan_guides (T-SQL)
Panduan Paket
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk