我有一个零件数据库,我将不断查询报价系统。零件数据库中有 1,400,000 多条记录。用户只需开始输入零件号,他们希望系统能够在仅几个字符后找到这些零件号,因此我需要能够进行通配符搜索,例如:

SELECT NeededFields FROM Parts WHERE PartNumber LIKE 'ML%'

是否有任何类型的优化可以执行以尝试从此类查询中榨取最大性能?我有 PartNumber 字段索引,但我不确定这是否是我能得到的最好的。我也愿意考虑将内置于数据库中的备用索引结构与 SQL 索引分开。主键是一个 Guid,但我需要它来进行复制,因为我使用了特定的数据结构。

最佳答案

我猜你的主键(GUID)可能有一个聚集索引。您可能需要考虑使主键不被聚簇。相反,您可以对您为 PartNumber 创建的索引进行聚类。 (每张表只能有一个聚集索引)

您还应该考虑向查询添加 TOP 谓词,以便仅返回前 100(左右)行。我在想……如果用户首先输入 M,可能会有几十万个匹配项,加载速度会很慢。通过限制行数,您应该获得更好的性能。

10-08 13:01