今天在SSMS里查询占用了最多的 CPU 累计使用率看到了这条语句
大家议优化一下这个T-SQL。
先不考虑索引问题,大家把这几个关键字看看用什么来替代能最好
where CYCLTN<>@ClientID and
(ltrim(rtrim(CYCAD1))+ltrim(rtrim(CYCAD2))+ltrim(rtrim(CYCAD3)))<>ltrim(rtrim(@Address))
AND ( (CYHPHE=@Mobile or CYBPHE=@Mobile or CYFPHE=@Mobile) or
(CYHPHE=@Phone or CYBPHE=@Phone or CYFPHE=@Phone)
大家议优化一下这个T-SQL。
先不考虑索引问题,大家把这几个关键字看看用什么来替代能最好
where CYCLTN<>@ClientID and
(ltrim(rtrim(CYCAD1))+ltrim(rtrim(CYCAD2))+ltrim(rtrim(CYCAD3)))<>ltrim(rtrim(@Address))
AND ( (CYHPHE=@Mobile or CYBPHE=@Mobile or CYFPHE=@Mobile) or
(CYHPHE=@Phone or CYBPHE=@Phone or CYFPHE=@Phone)
FROM tb
WHERE CYCLTN <> @ClientID
AND REPLACE(CYCAD1 + CYCAD2 + CYCAD3, SPACE(0), '') <> REPLACE(@Address,
SPACE(0), '')
AND ( CHARINDEX(',' + @Mobile + ',',
',' + CYHPHE + ',' + CYBPHE + ',' + CYFPHE, ',') > 0
OR CHARINDEX(',' + @Phone + ',',
',' + CYHPHE + ',' + CYBPHE + ',' + CYFPHE, ',') > 0
)没想到太好的办法...
CYCLTN 里面的存储数据:0000000003
CYCAD1: 殷高路,
CYCAD2: 601室,
CYCAD3: null
CYHPHE: 56083311
CYBPHE: 15933262021
CYFPHE: 68650016
(ltrim(rtrim(CYCAD1))+ltrim(rtrim(CYCAD2))+ltrim(rtrim(CYCAD3)))<>ltrim(rtrim(@Address))