2

我的应用程序中有一个选项,其中一些数据根据在文本框中输入的文本进行搜索。

text- change所以我确实对文本框事件执行搜索(调用以字符串为输入的存储过程) 。

我阅读了一篇关于提高 ADO.NET 性能的文章,我发现减少数据库往返可以提高性能。

对于这些情况有更好的方法吗?

4

4 回答 4

1

不确定它是否符合您的要求,但您可以进行数据库调用并将所需的表加载到数据集中,然后在本地调用数据集。如果您在使用计时器触发文本更改事件时引入延迟,那么您就完成了您的要求,一切都应该很快。我们在我们的应用程序中使用了这种方法,效果很好。

但另一方面,我想强调的是,即使这种方法对提高性能也没有太大影响。如果应用程序的规模相当大,应用程序的速度基于其架构和流程。但是想到技术的捷径总是很棒的。

于 2012-12-19T07:58:45.523 回答
0

使用搜索索引实现怎么样?我这样做是为了解决一个非常相似的问题。

在开始我的应用程序时,我会启动 Lucene 索引。该索引将定期刷新以适应更改。

http://www.codeproject.com/Articles/29755/Introducing-Lucene-Net

这比直接调用数据库要快得多,并且由于只需准备好索引,因此数据库服务器上的负载也更少。此外,Lucene 支持一组非常强大的搜索条件。

于 2012-12-18T21:30:33.643 回答
0

您留下一些猜测,因为不知道搜索返回什么。

您可以将数据读入字典,其中键是文本框输入,值是搜索返回的内容。然后您可以使用 LINQ 搜索密钥。

于 2012-12-18T14:17:35.263 回答
0

如果文本框的每次更改都必须触发更新,则取决于您所需的用户体验,您无能为力。textchanged 不应为每个键入的字母触发,而应仅在用户离开文本框且值已更改后触发

如果用户可以搜索多个字段但在按钮后面搜索

如果这个函数被大量使用并且没有太多的数据是相当静态的,你可以在你的应用程序中缓存数据并从缓存中获取

于 2012-12-18T12:33:22.970 回答