我遇到过这个问题,我不得不在搜索查询中添加另一个表来满足客户的需求。
搜索结果是正确的,但如果搜索字长度为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
由于我添加了表格" Kundentyp $ .ext_kdnr"因此等待时间过长的问题就出现了。声明
但话又说回来,如果搜索关键字更具体,那么搜索只需几毫秒..
我不知道如何调试这个^^
答案 0 :(得分:0)
感谢stackoverflowers的帮助,我可以解决这个问题。
问题是,LEFT JOIN
在我的查询中被inner join
执行,可能导致了冲突。
对INNER JOIN
的简单更改修复了我的效果问题