从数据库中获取大量数据的最有效方法是什么?

时间:2014-01-24 00:54:05

标签: c# .net sql-server performance sql-server-2005

我有一个存储过程,它在结果集中从SQL Server返回7个数据表。它使用大约400 MB的带宽将数据带到客户端进行处理。

将数据带回来的代码非常简单:

private DataSet CreateDataSet(SqlCommand command)
{
    DataSet dataSet = new DataSet();
    SqlDataAdapter da = new SqlDataAdapter(command);

    da.Fill(dataSet);
    da.Dispose();

    return dataSet;
}

问题在于,在数据库中,这个sproc导致类型为ASYNC_NETWORK_IO的相当大的等待,文档说,这意味着客户端无法跟上数据库。

我的问题是如何以更快的方式将这些数据带到客户端,从而消除或减少服务器上的ASYNC_NETWORK_IO等待?

一些事实:

  • 数据库服务器与应用程序位于同一个框中,因此连接类型为共享内存,而不是TCP。
  • 数据表彼此依赖,因此将数据表分成单独的存储过程不是一种选择。

0 个答案:

没有答案