gpt4 book ai didi

c# - 通过 sql 表中的 100,000 条记录进行通配符搜索的最佳优化技术是什么

转载 作者:行者123 更新时间:2023-11-30 17:04:02 25 4
gpt4 key购买 nike

我正在开发 ASP.NET MVC 应用程序。此应用程序由 200 个用户使用。这些用户不断地(每 5 分钟)从 100,000 个项目的列表中搜索一个项目(这个列表将每月增加 1-2%)。这个包含 100,000 个项目的列表存储在 SQL Server 表中。

搜索是通配符搜索

例如:

Select itemCode, itemName, ItemDesc 
from tblItems
Where itemName like '%SearchWord%'

搜索需要非常快,因为主要业务依赖于搜索和选择项目。

我想知道如何获得最佳性能。搜索结果必须立即出现。

我尝试过的-

  1. 我尝试将整个 100,000 条记录预加载到内存缓存中,然后从内存缓存中读取。我试图避免每次搜索都调用 SQL Server。

    这需要很多时间。每次用户搜索一个项目时,我们都会从内存缓存中检索 100,000 条记录,然后进行搜索。这比直接 SQL 搜索花费的时间几乎多 2-3 倍。

  2. 我尝试在 SQL Server 表上进行直接搜索,但一次将结果限制为 50 条记录(使用前 50 条记录)

    这似乎还可以,但离我们寻求的性能还差得很远

我想听听可能的解决方案和任何文章/代码的链接。

提前致谢

最佳答案

运行 SQL Profiler 并进行调整配置文件。这将对要针对您的数据库执行的索引提出建议。

此外,像下面这样的查询也值得一试。

SELECT  *
FROM
(
SELECT ROW_NUMBER() OVER ( ORDER BY ColumnA) AS RowNumber, itemCode, itemName, ItemDesc
FROM tblItems
WHERE itemName LIKE '%FooBar%'
) AS RowResults
WHERE RowNumber >= 1 AND RowNumber < 50
ORDER BY RowNumber

编辑:更新查询以反射(reflect)您的真实情况。

关于c# - 通过 sql 表中的 100,000 条记录进行通配符搜索的最佳优化技术是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17973889/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com