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' 应用程序启动时的所有数据。