[英]SQL Server database blocking issue with @@SERVERNAME
我們的一台數據庫服務器上存在一個鎖定問題。 在詳細調查造成阻塞的原因之后,我們發現這是我們的功能之一。 真正令人驚訝的是,該函數不執行任何操作 -僅返回格式化的服務器名稱。
CREATE FUNCTION [dbo].[GetReleaseName]()
RETURNS NVARCHAR(50)
AS
BEGIN
DECLARE @serverName NVARCHAR(20)
DECLARE @ReleaseVersion NVARCHAR(20)
SET @ReleaseVersion = '20170807'
RETURN @@SERVERNAME + '_UAT_' + @ReleaseVersion
END
@@SERVERNAME
怎么引起任何阻止?
標量函數的性能較差。
嘗試用內聯表值函數替換函數。
這是一個例子:
CREATE FUNCTION [dbo].[GetReleaseName_ITVF]()
RETURNS TABLE
AS
RETURN(
SELECT @@SERVERNAME + '_UAT_20170807' as FullServerName
)
用法:
SELECT * FROM [table] CROSS APPLY GetReleaseName_ITVF()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.