C# SQL 查询滞后
C# SQL query is lagging
我开发了一个应用程序来处理数据库中的数据。当我 运行 来自我的电脑或我附近的电脑(在我公司,同一台服务器)的应用程序时,它工作正常,但是当来自同一家公司但另一台服务器(另一个国家)的人试图做同样的事情时,他有巨大的滞后。
我知道查询有点"to much":
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Person", con)
更多数据 -> 更多延迟
但我有点需要数据库中的所有数据来填充 ListView,然后导出到 Excel 文档。
我尝试过的事情:
我创建了一个将执行此命令的后台工作程序,当工作程序完成时,我用如下数据填充 ListView:
private void ViewAllWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
while (Oreader.Read())
{
ListViewItem item = new ListViewItem(Oreader["ID"].ToString());
item.SubItems.Add(Oreader["DecadeOfBirth"].ToString());
// etc
}
}
遇到这种情况你会怎么做?什么可以帮助减少延迟?什么是正确的方法?
解决此问题的唯一正确方法是减少返回给用户的数据量。
举个例子:
- 您的 table 包含很多您需要导出的行
- 用户想预览数据然后导出到Excel
- 允许用户查看部分数据
- 前N条记录
- 过滤器(按用户名、部门、日期等)
- 分页(跳过,取)
- 用户对她所看到的很满意,然后想要导出所有数据
- 你运行在服务器上,给用户一些进度反馈
如果您的应用程序基于 IIS(如 ASP.NET),您可以使用 Application Object 并保存table 'Person' 应用程序启动时的所有数据。
我开发了一个应用程序来处理数据库中的数据。当我 运行 来自我的电脑或我附近的电脑(在我公司,同一台服务器)的应用程序时,它工作正常,但是当来自同一家公司但另一台服务器(另一个国家)的人试图做同样的事情时,他有巨大的滞后。
我知道查询有点"to much":
SqlCommand command = new SqlCommand("SELECT * FROM dbo.Person", con)
更多数据 -> 更多延迟
但我有点需要数据库中的所有数据来填充 ListView,然后导出到 Excel 文档。
我尝试过的事情:
我创建了一个将执行此命令的后台工作程序,当工作程序完成时,我用如下数据填充 ListView:
private void ViewAllWorker_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
while (Oreader.Read())
{
ListViewItem item = new ListViewItem(Oreader["ID"].ToString());
item.SubItems.Add(Oreader["DecadeOfBirth"].ToString());
// etc
}
}
遇到这种情况你会怎么做?什么可以帮助减少延迟?什么是正确的方法?
解决此问题的唯一正确方法是减少返回给用户的数据量。
举个例子:
- 您的 table 包含很多您需要导出的行
- 用户想预览数据然后导出到Excel
- 允许用户查看部分数据
- 前N条记录
- 过滤器(按用户名、部门、日期等)
- 分页(跳过,取)
- 用户对她所看到的很满意,然后想要导出所有数据
- 你运行在服务器上,给用户一些进度反馈
如果您的应用程序基于 IIS(如 ASP.NET),您可以使用 Application Object 并保存table 'Person' 应用程序启动时的所有数据。