SQL Server 2016 - 本機編譯的函數

jopen 9年前發布 | 16K 次閱讀 SQL Server

英文原文:SQL Server 2016: Natively Compiled Functions

在 SQL Server 2014 中引入了本機編譯的存儲過程這一特性,而在 SQL Server 2016 中,我們將能夠實現標量用戶自定義函數(Scalar UDF)的本機編譯(Natively Compilation)。

SQL Sever 會將標準的T-SQL 語句編譯為一種專有的中間語言,并在運行時對此中間語言進行解釋。而在本機編譯的情況下,存儲過程將轉換為C代碼并編譯到一個 DLL 中,SQL Server 會在運行時使用這個 DLL 文件。

現在,Scalar UDF 也能夠以類似的方式編譯為機器代碼了。對于簡單的操作來說,這一過程會極大地改善它的性能。只要是普通的 Scalar UDF 能夠使用的場合,都可以轉為使用本機編譯的 Scalar UDF。不僅如此,它還能夠在本機編譯的存儲過程中使用,這一點對于代碼重用來說是個巨大的勝利,因為在 SQL Server 中,這種方式之前總是被認為意味著糟糕的性能。

與本機編譯的存儲過程一樣,本機編譯的 Scalar UDF 也必須被定義為綁定到架構(schema bound)。在存儲過程中,WITH SCHEMABINDING 選項表示本機編譯是所期望的方式。目前還不清楚這一選項將如何作用于 UDF,不過就像你已經看到的一樣,它必然代表綁定到架構的函數。或許它能夠自動檢測到某個綁定到架構的 UDF 可否進行本機編譯,根據結果不同進行相應的舉措。

來自: InfoQ

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!