【发布时间】:2012-07-12 23:16:57
【问题描述】:
我有一个位于网络中的 postgre 服务器,我正在使用数据库。 我需要检查大量记录(超过 100 万条),而且每次选择都需要时间。
这是我目前的方法:
DataSet ds = new psqlWork().getDataSet("SELECT * FROM z_sitemap_links");
DataTable dt = ds.Tables[0];
Parallel.ForEach(dt.AsEnumerable(), dr =>
{
new Sitemap().runSitemap(dr[1].ToString(), counter);
counter++;
});
但是当数据库大小增加时,这种方法(在我看来)不会那么有效。你能建议一个更好的方法吗?也许将数据拉到块中进行处理;虽然我现在不知道如何管理。
【问题讨论】:
-
"SELECT * FROM z_sitemap_links" 你真的需要所有的列吗?
-
永远不要在大型数据库上使用
SELECT * -
是的,表格只包含链接;没有别的
-
所以只有一列?然后只需选择一列。另外,请参阅下面的注释,并提供适当的反馈。
标签: c# winforms performance postgresql query-optimization