我有以下查询,在少于 100K 行的数据集上运行最多需要 2 秒。
我的 SQL 非常生疏,但这看起来像是做的工作比它应该做的多。任何人都可以提供一些关于在哪里寻找加快速度的指示吗?
SELECT
a.AddressID,
IsPrincipal = CASE
WHEN EXISTS(SELECT TOP 1 1 FROM dbo.Setting s WHERE s.SettingValue = a.AddressID AND s.SettingDefinitionID = 3 AND s.ProfileID = 1)
THEN 1
ELSE 0
END,
IsPickUp = CASE
WHEN EXISTS(SELECT TOP 1 1 FROM dbo.AddressRole ar WHERE ar.AddressID = a.AddressID AND ar.[AddressRoleTypeID] = 2)
THEN 1
ELSE 0
END,
IsSender = CASE
WHEN EXISTS(SELECT TOP 1 1 FROM dbo.AddressRole ar WHERE ar.AddressID = a.AddressID AND ar.[AddressRoleTypeID] = …Run Code Online (Sandbox Code Playgroud) performance sql-server sql-server-2008-r2 case query-performance