我有一个SQL Server 2008数据库。该数据库有2个表:
Manufacturer
------------
ID,
Name nvarchar(256)
Product
-------
ID
ManufacturerID
Name nvarchar(256)
我的应用程序有一个搜索框。我不知道用户是否要提供制造商名称或产品名称。另外,我想要有点优雅并处理错误拼写。为了满足这个标准,我正在使用CONTAINSTABLE功能。使用此功能,我创建了以下查询:
SELECT
*
FROM
[Manufacturer] m
INNER JOIN [Product] p ON m.[ID]=p.[ManufacturerID]
INNER JOIN CONTAINSTABLE(Manufacturer, Name, @searchQuery) r ON m.[ID]=r.[Key]
ORDER BY
r.[Rank]
我的查询使用CONTAINSTABLE函数执行非常慢。如果没有第二个INNER JOIN,查询将在不到1秒的时间内运行。包含第二个INNER JOIN后,查询运行时间超过30秒(太长)。
任何人都可以提供一些性能建议吗?我不知道如何克服这个障碍。
谢谢,
答案 0 :(得分:0)
SELECT *
。