摘要:
作为业务系统设计的一部分,我正在 SQL Server 2012 中创建一个新表。该表有 3 列(除其他外),类型nvarchar
不同,我的 Web 应用程序需要使用单个字符串搜索词查询这 3 列。此表可以包含不超过 100K 的记录。
我想以某种方式在 SQL Server 2012 中对这些列进行索引,以便最有效地获取结果。
我想强调一下,我要问的问题与我的特定案例有关,而不是一般的 SQL 索引问题。尽管对它们的答案也可能适用于一般问题。
语境
- SQL Server 2012
- 视窗服务器 2008
表列定义:
- 项目编号 :: nvarchar(10)
- 制造商 :: nvarchar(20)
- 说明 :: nvarchar(40)
可能的记录数:高达 100K
用例:
最终用户(大约 1000 个)将传递一个字符串来搜索这三列,并且查询需要返回所有行,其中这三列中的任何一列都包含正在搜索的字符串的值(不区分大小写)。
问题:
- 创建索引的最佳方法是什么,以便查询以最有效的方式返回数据(快速同时最大限度地减少 SQL Server 资源使用)?
- 为每一列创建索引?
- 创建一个包含所有 3 列的索引?
- 在索引上启用全文搜索?
- 什么方法可以充分发挥 SQL Server 2012 的潜力?