當你要將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通過驗證
參考