在 SQL 服务器中进行全文搜索的好的变量类型是什么
What is good variable type for full text search in SQL Server
我正在 MS SQL 服务器中声明一个新的存储过程来实现全文搜索,我的查询是这样的:
Select * from table WHERE FREETEXT((col1, col2), @Search_Statement)
问题已经写在下面:
支持大多数搜索并具有最佳性能的@Search_Statement 变量的正确数据类型是什么?
(我知道,如果我将@Search_Statement设为长变量,它支持更多的搜索查询,但使用更长的@Search_Statement执行查询可能会影响性能,并且google将搜索查询限制为32单词:https://www.linkedin.com/grp/post/1176637-216124982)
我不知道我的存储过程中的@Search_Statement 使用这些数据类型中的哪一个:Nvarchar(100)、Nvarchar(500) 或 Nvarchar(MAX)
哪个是最好的选择? (性能,以及所有其他方面)
更新:我知道我应该使用 nvarchar 但 nvarchar 的适当大小是多少? nvarchar(100),(200),(500),... 甚至 nvarchar(MAX)?
FREETEXT ( { column_name | (column_list) | * }
, 'freetext_string' [ , LANGUAGE language_term ] )
freetext_string is nvarchar. An implicit conversion occurs when another character data type is used as input. In the following example, the @SearchWord variable, which is defined as varchar(30), causes an implicit conversion in the FREETEXT predicate.
我正在 MS SQL 服务器中声明一个新的存储过程来实现全文搜索,我的查询是这样的:
Select * from table WHERE FREETEXT((col1, col2), @Search_Statement)
问题已经写在下面:
支持大多数搜索并具有最佳性能的@Search_Statement 变量的正确数据类型是什么?
(我知道,如果我将@Search_Statement设为长变量,它支持更多的搜索查询,但使用更长的@Search_Statement执行查询可能会影响性能,并且google将搜索查询限制为32单词:https://www.linkedin.com/grp/post/1176637-216124982)
我不知道我的存储过程中的@Search_Statement 使用这些数据类型中的哪一个:Nvarchar(100)、Nvarchar(500) 或 Nvarchar(MAX) 哪个是最好的选择? (性能,以及所有其他方面)
更新:我知道我应该使用 nvarchar 但 nvarchar 的适当大小是多少? nvarchar(100),(200),(500),... 甚至 nvarchar(MAX)?
FREETEXT ( { column_name | (column_list) | * } , 'freetext_string' [ , LANGUAGE language_term ] )
freetext_string is nvarchar. An implicit conversion occurs when another character data type is used as input. In the following example, the @SearchWord variable, which is defined as varchar(30), causes an implicit conversion in the FREETEXT predicate.