SQL 在 2 列中搜索性能并合并 1 列

SQL Search performance in 2 columns vs combined 1 column

使用MSSQL Server存储过程,短table结构是

Id int, --PK
Code varchar(20),   --Indexed column
Oems varchar(max)   --Some rows will have thousands of oems

有500K条记录,每一行都有一个Code。 40 万行有 Oem。样本数据

Id   Code         Oems
-------------------------------------
1   ARD5612     ,7171833,B716382,324324,2423423,GB23434,00002334
2   80001627    ,99901811,1727282,...    

当前条件是(找到所有并且只有键的开头必须匹配)

WHERE code LIKE @Key + '%' OR Oems LIKE '%,' + @Key + '%'

Key = 1234
Code = 123456 Find
Code = 001234 don’t find
Oems = ,12340000,kh77,062483 find
Oems = ,7777,5262,abc723,x1234 don’t find

所以,我的问题是,我应该合并这两列并在一列上进行搜索还是保持原样?

Code 列上建立索引对搜索有积极影响吗?

谢谢

编辑:正如许多人建议的那样,如果我将 Oem 转换为新的 table,那么 table 将有 15M 条记录。 新设计对性能有何帮助?

谢谢

谢谢大家。我将逗号分隔值插入到一个新的 table 中,每行有一个值,添加了一个索引并且效果很好。