SQL Server 2016 - 原生編譯的函數

來源:互聯網
上載者:User

SQL Server 2016 - 原生編譯的函數

在 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 可否進行原生編譯,根據結果不同進行相應的舉措。

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

本文永久更新連結地址:

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.