[SQL Server]Native Compilation Advisor

當你要將old sp移轉為native sp,千萬不要忘記Native Compilation Advisor這好朋友。

之前我介紹過善用交易效能分析報表,可以幫助我們預估disk table移轉至memory table效益如何,

針對sp部分也有一個類似功能,可以幫我們指出old sp移轉至native sp還存在那些(不支援)問題,

雖然無法幫我們自動移轉,但至少這功能我覺得相當準確,去年省下我很多移轉native sp時間,

但真實世界改寫過程還是相當耗時,下面簡單示範該功能。

create proc usp_testspadvisor
(
@c2 int
)
as
--set nocount on
select c1,c2,c3,c4 from myEmail_mem where c2=@c2;
begin tran
 insert into Table1
 select GETDATE(),@c2
commit

 

針對該old sp,選擇原生編譯Advisor

下一步你將看到驗證結果

在下一步,詳細告訴你那些TSQL不支援

可以按下產生報表,就會產出一份htm格式報表。

Note:目前提供的連結是SQL2014版本,並非SQL2016。

 

針對上面報表,我們來逐一修改該SP如下

alter proc usp_testspadvisor
(
@c2 int
)
as
--set nocount on --not support
select c1,c2,c3,c4 from dbo.myEmail_mem where c2=@c2;--colunm name,two-part name
--begin tran --not support
 insert into dbo.Table1 --two-part name
 select GETDATE(),@c2
--commit --not support

 

修改完後再執行一次原生編譯advisor,就可以發現該SP通過驗證

 

參考

Migration Issues for Natively Compiled Stored Procedures