SQL 再添加一个 OR 后查询执行得非常慢
SQL Query gets executed extremly slow after adding one more OR
我遇到了这个问题,我不得不在搜索查询中添加另一个 Table 来满足我的客户需求。
搜索结果正确,但如果搜索词长度为 3 个或更少字符,搜索过程需要 5 秒(直接在服务器上的 SSMS 工具上测试)
查询如下所示:
SELECT
Kundendaten$.ID,
Kundendaten$.firmenname1,
Kundendaten$.firmenname2,
Kundendaten$.strasse,
Kundendaten$.uid,
Kundendaten$.lkw12t,
Kundendaten$.lkw3t,
Kundendaten$.gesperrt
FROM Kundendaten$
LEFT JOIN Kundentyp$ ON Kundendaten$.ID = Kundentyp$.Kunden_ID
WHERE Kundentyp$.ext_kdnr LIKE '%nox%'
OR (
Kundendaten$.firmenname1 LIKE '%nox%'
OR Kundendaten$.firmenname2 LIKE '%nox%'
OR Kundendaten$.suchwort LIKE '%nox%'
OR Kundendaten$.gehr_kundennummer LIKE '%nox%'
OR Kundendaten$.kundenummer LIKE '%nox%'
OR Kundendaten$.uid LIKE '%nox%'
OR Kundendaten$.ID LIKE '%nox%'
)
ORDER BY Kundendaten$.ID ASC
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
由于我添加了table "Kundentyp$.ext_kdnr"语句
,出现了等待时间长的问题
但话又说回来,如果搜索关键字更具体,搜索只需要几毫秒..
我不知道如何调试这个^^
多亏了Whosebugers的大佬帮忙解决了这个问题
问题是,LEFT JOIN
在我的查询中作为 inner join
执行,可能导致了冲突。
对 INNER JOIN
的简单更改解决了我的性能问题
我遇到了这个问题,我不得不在搜索查询中添加另一个 Table 来满足我的客户需求。
搜索结果正确,但如果搜索词长度为 3 个或更少字符,搜索过程需要 5 秒(直接在服务器上的 SSMS 工具上测试)
查询如下所示:
SELECT
Kundendaten$.ID,
Kundendaten$.firmenname1,
Kundendaten$.firmenname2,
Kundendaten$.strasse,
Kundendaten$.uid,
Kundendaten$.lkw12t,
Kundendaten$.lkw3t,
Kundendaten$.gesperrt
FROM Kundendaten$
LEFT JOIN Kundentyp$ ON Kundendaten$.ID = Kundentyp$.Kunden_ID
WHERE Kundentyp$.ext_kdnr LIKE '%nox%'
OR (
Kundendaten$.firmenname1 LIKE '%nox%'
OR Kundendaten$.firmenname2 LIKE '%nox%'
OR Kundendaten$.suchwort LIKE '%nox%'
OR Kundendaten$.gehr_kundennummer LIKE '%nox%'
OR Kundendaten$.kundenummer LIKE '%nox%'
OR Kundendaten$.uid LIKE '%nox%'
OR Kundendaten$.ID LIKE '%nox%'
)
ORDER BY Kundendaten$.ID ASC
OFFSET 0 ROWS FETCH NEXT 10 ROWS ONLY
由于我添加了table "Kundentyp$.ext_kdnr"语句
,出现了等待时间长的问题但话又说回来,如果搜索关键字更具体,搜索只需要几毫秒..
我不知道如何调试这个^^
多亏了Whosebugers的大佬帮忙解决了这个问题
问题是,LEFT JOIN
在我的查询中作为 inner join
执行,可能导致了冲突。
对 INNER JOIN
的简单更改解决了我的性能问题