【发布时间】:2018-11-03 01:03:32
【问题描述】:
以下查询执行需要 45 秒。如何提高速度?
SELECT
u.i_UserID,
u.vch_LoginName,
ea.vch_EmailAddress,
u.vch_DisplayName,
'Current' As 'vch_RecordStatus'
FROM
tblUser u
LEFT JOIN [User].dbo.tblEmailAddress ea
ON u.i_EmailAddressID = ea.i_EmailAddressID
WHERE
IsNull(u.vch_LoginName, '') Like '%'
AND u.vch_DisplayName LIKE 'kala' -- 14 secs
UNION ALL -- 29 secs
SELECT
DISTINCT l.i_UserID
,l.vch_OldLoginName as vch_LoginName
,l.vch_OldEmailAddress as vch_EmailAddress
,u.vch_DisplayName as vch_DisplayName,
'Old' As 'vch_RecordStatus'
FROM tblUserStatusLog l
INNER JOIN tblUser u on u.i_UserID = l.i_UserID
WHERE
l.vch_OldLoginName Like '%'
AND u.vch_DisplayName LIKE 'kala' -- 28 secs
ORDER BY
u.vch_LoginName
【问题讨论】:
-
为了改善您的问题,请告诉我们更多有关表结构、行数、索引、机器等的信息...
-
您很可能需要改进索引。如果您需要更多帮助,请在您的问题中包括创建表和索引语句、查询计划和统计 io 输出。
-
IsNull(u.vch_LoginName, '') Like '%'和l.vch_OldLoginName Like '%'没有任何意义,这个有什么用? -
需要显示查询计划。
标签: sql-server