Sql 如何改进全文搜索

Sql 如何改进全文搜索,sql,sql-server,tsql,sql-server-2008,full-text-search,Sql,Sql Server,Tsql,Sql Server 2008,Full Text Search,我有一个SQL Server 2008数据库。此数据库有2个表: Manufacturer ------------ ID, Name nvarchar(256) Product ------- ID ManufacturerID Name nvarchar(256) 我的应用程序有一个搜索框。我不知道用户是要提供制造商名称还是产品名称。此外,我还试图表现得优雅一点,处理拼写错误。为了满足这个标准,我使用CONTAINSTABLE函数。使用此函数,我创建了以下查询: SELECT * F

我有一个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函数中执行得非常慢。如果没有第二个内部联接,查询将在不到1秒的时间内运行。在包含第二个内部联接的情况下,查询将在30秒多一点的时间内运行(太长)

有人能提供一些性能建议吗?我不知道如何克服这个障碍

谢谢你,

  • 只选择所需的字段,而不是
    Select*
  • m和p上的索引是否已设置

感谢您的回复。我只选择我需要的字段。此外,已经设置了索引。这就是为什么我对此感到困惑的原因。您正在运行SELECT*-这确实是您所需要的吗?