如何使用两个Nvarchar(max)列

时间:2015-09-06 15:19:56

标签: sql-server tsql sql-server-2012

我已将查询范围缩小到:

select * FROM items where accountid=4755 and (itemId like N'%9976%' or [description] like N'%9976%' or fulldescription like N'%9976%' )  

两个'描述'和' FullDescription'已经从nvarchar(max)缩小到nvarchar(4000)。

似乎我仍然无法建立索引,因为它太大了(不能再低了)。此外,如果我删除“描述”和“#39;或者' FullDescription'它工作得很快,所以缓慢是复合效应。此外,没有LIKE条件的此查询在相对较小的数据库中仅包含1,000行。

1 个答案:

答案 0 :(得分:0)

我们最终得到的结果类似于Amir在此提出的内容。由于98%的数据非常短,我们创建了另外两列nvarchar(450),它满足900字节限制,然后为它们创建了索引。

我们在Azure上托管,时间紧迫,所以我们没有考虑自由文本搜索。我们还遇到了Azure搜索服务,它可能适合这种情况,但这需要耗费时间的POC。

谢谢大家。