小编Tom*_*m_W的帖子

给 EXEC (@Variable) 一个列名和串联

我正在尝试编写一个存储过程,该过程将在我们的客户尝试升级之前检查孤立数据,因为孤立记录可能会导致问题。这是我迄今为止所拥有的;

IF EXISTS (SELECT * FROM sys.objects WHERE type = 'P' AND name = 'DetectOrphanDataBeforeUpgrade')
DROP PROCEDURE [dbo].[DetectOrphanDataBeforeUpgrade]
GO

CREATE PROCEDURE [dbo].[DetectOrphanDataBeforeUpgrade]

@TenantId   INT = NULL

AS
BEGIN

DECLARE @OrphanAuditItems NVARCHAR(MAX)
DECLARE @OrphanAuditAnswers NVARCHAR(MAX) 
DECLARE @OrphanAuditQuestion NVARCHAR(MAX)

------------------------------------------------------------------------------------------------
/* Throw an error if the TenantId is NULL or Invalid.               */
------------------------------------------------------------------------------------------------
IF @TenantId IS NULL OR @TenantId NOT IN (SELECT Tenants FROM [Application].[dbo].[TenantIdNumber])

BEGIN
    THROW 51000, '@TenantId is invalid because it is NULL or does not exist.', 1;
END


------------------------------------------------------------------------------------------------ …
Run Code Online (Sandbox Code Playgroud)

sql-server

5
推荐指数
1
解决办法
329
查看次数

使用日期列加速请求的最佳方法

我们的数据库正在接收以下请求:

select * from [schema].[table] (nolock) where (Date_A > Date_B and Archive = 0)
Run Code Online (Sandbox Code Playgroud)

这是我们的应用程序发出的正常请求。平均而言,完成请求需要 200 毫秒 - 400 毫秒,CPU 大约需要 100 毫秒 - 150 毫秒。读取通常在 48k 左右。这至少是该脚本如何执行的一个示例。

加速此类请求的最佳方法是什么(如果有办法)?

该表有 240,932 行,查询返回 0 条记录。

performance sql-server query-performance

1
推荐指数
1
解决办法
78
查看次数