我正在创建一个Windows应用程序,我需要使用ado.net/(或者任何其他方式使用C#,如果有的话)获取数据。从一张桌子。数据库表显然有大约100000
个记录,下载需要永远。
有没有更快的方法让我可以更快地获取数据?
我尝试了DataReader
,但仍然不够快。
答案 0 :(得分:3)
数据阅读器API是您可以做的最直接的。重要的是时间在哪里?
您可以在计算机上本地运行查询,并查看需要多长时间。如果带宽是您的限制,那么您真正尝试的就是删除您实际不需要的列(不要select *
)。或者支付你和服务器之间更胖的管道费用。在某些情况下,在本地查询数据,并以某种压缩形式返回它可能会有所帮助 - 但是你真的在谈论像Web服务这样的东西,它有其他带宽考虑因素。 / p>
但更有可能的是,问题在于查询本身。通常,例如:
答案 1 :(得分:0)
您可能希望实现需要了解基础方法。只需下拉所需的第一块数据,然后在需要下一组时,拉出这些行。
答案 2 :(得分:0)
这可能是你的查询速度太快而不是流媒体进程。您应该向我们展示您的SQL查询,然后我们可以帮助您改进它。
假设您想要从您的表中获取所有100000条记录,您可以使用SqlDataAdapter
填充DataTable
或SqlDataReader
来填充List<YourCustomClass>
:
DataTable
方法(因为我不知道你的字段很难展示课程):
var table = new DataTable();
const string sql = "SELECT * FROM dbo.YourTable ORDER BY SomeColumn";
using(var con = new SqlConnection(Properties.Settings.Default.ConnectionString))
using(var da = new SqlDataAdapter(sql, con))
{
da.Fill(table);
}