Tôi có truy vấn sau đây mất tới 2 giây để chạy trên tập dữ liệu có ít hơn 100K hàng.
SQL của tôi rất hoen gỉ nhưng điều này có vẻ như nó đang làm rất nhiều việc hơn bình thường. Bất cứ ai cũng có thể cung cấp một số gợi ý về nơi để tìm cách tăng tốc độ này?
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] = 3)
THEN 1
ELSE 0
END,
IsDelivery = CASE
WHEN EXISTS(SELECT TOP 1 1 FROM dbo.AddressRole ar WHERE ar.AddressID = a.AddressID AND ar.[AddressRoleTypeID] = 4)
THEN 1
ELSE 0
END,
IsReceiver = CASE
WHEN EXISTS(SELECT TOP 1 1 FROM dbo.AddressRole ar WHERE ar.AddressID = a.AddressID AND ar.[AddressRoleTypeID] = 5)
THEN 1
ELSE 0
END
FROM dbo.[Address] AS a
WHERE a.MFTID = '12345'