发布
社区首页 >问答首页 >@@SERVERNAME的Server数据库阻塞问题

@@SERVERNAME的Server数据库阻塞问题
EN

Stack Overflow用户
提问于 2017-08-08 08:40:53
回答 1查看 50关注 0票数 0

我们的一个数据库服务器上有一个锁定问题。在详细研究了造成阻塞的原因之后,我们发现这是我们的功能之一。真正令人惊讶的是,这个函数什么也不做--只返回格式化的服务器名。

代码语言:javascript
代码运行次数:0
复制
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怎么会造成任何阻塞呢?

EN

回答 1

Stack Overflow用户

发布于 2017-08-08 09:50:36

标量函数性能较差。

尝试用内联表值函数替换函数。

下面是一个例子:

代码语言:javascript
代码运行次数:0
复制
CREATE FUNCTION [dbo].[GetReleaseName_ITVF]()
RETURNS TABLE
AS
RETURN(
    SELECT @@SERVERNAME + '_UAT_20170807' as FullServerName
)

用法:

代码语言:javascript
代码运行次数:0
复制
SELECT * FROM [table] CROSS APPLY GetReleaseName_ITVF()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45563444

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档