【发布时间】:2016-04-12 14:53:55
【问题描述】:
我有一个 TEXT 数据类型的列需要存储大量文本,因此我必须使用 TEXT 数据类型。
但是这个栏目需要经常搜索。如果我想比以前更快地进行搜索,我应该怎么做?
这是我的查询(workDescription 列的最大 DATALENGTH 为 399721)
SELECT [workID],
[staffID],
[workDate],
[startTime],
[endTime],
[projectID],
[timeFor],
[workType],
[workTitle],
[workDescription], ---> text datatype
[isDeleted],
[createdDate],
[createdBy],
[lastUpdate],
[updatedBy]
FROM [IndosoftDb_LIVE].[dbo].[tblTimesheet]
WHERE [workDescription] LIKE '%event%'
OR [workTitle] LIKE '%event%'
注意:我的 PM 不想将其更改为 VARCHAR(MAX)。他害怕数据被截断。
【问题讨论】:
-
varchar(max)is the replacement fortext,所以你的 PM 的担心是没有根据的。他为什么要为项目做出技术决策? -
@Hackerman 说了什么。您应该查看全文搜索。
-
ntext、text和image数据类型将在 SQL Server 的未来版本中删除。避免在新的开发工作中使用这些数据类型,并计划修改当前使用它们的应用程序。请改用nvarchar(max)、varchar(max)和varbinary(max)。 See details here
标签: sql-server database optimization sql-server-2012