【发布时间】:2012-01-06 21:15:50
【问题描述】:
我有一个大约 15 列的表,可以使用不同的组合进行查询。例如,表列是 UserID、LocationID、DepartmentID、CoOrdinate1、CoOrdinate2、CoOrdinate3...CoOrdinate15。
为了加快数据组合的检索,我们创建了一个 Computed 字段,我们在其中以以下格式存储这些列的值:UserID::LocationID::DepartmentID::CoOrdinate1:...:CoOrdinate15: - a样本值看起来像:1:100:20:22:39:94:29:..:9:
虽然这对于检索索引键匹配的数据(= 运算符)很好,但我们正在探索获取组合的最佳方法。
例如,如果用户查询 UserID = 1 和 CoOrdinate = 15,我们计划构建一个 Like 条件 '%:1::%::%::%::%::%::%::%: :%::15:%'。
SQL Server 正在执行索引扫描以检索数据。从性能的角度来看 - 有没有更好的方法来解决这个问题。
【问题讨论】:
-
UserId 字段是主键吗?
-
没有。有一个 id 字段是主键。
标签: sql sql-server-2008 sql-server-2005 tsql