我有一个包含1,000,000条记录的数据库和一个这样的查询:
select count(code) from table1
它在本地系统上运行良好,但在网络上变得非常慢。其他查询(例如select * from table
)执行得很快,但select count(code) from table1
非常慢。我无法改变数据库的结构。我的数据库是Foxpro,我使用的是VB.NET。
有解决方案吗?
编辑:我应该编写这样的代码吗?
dim ds as new dataset
dim da as new datadapter("select count(*) from table ", connection)
da.fill(ds,"tbl1")
那么如何从数据集中获取select count(code) from table1
?
或者我必须使用LINQ吗?
编辑2:我的意思是select count(*)
和select count(code)
之间的比较。
解决方案是什么?
答案 0 :(得分:6)
这样做会更快
select count(*) from table1
然后使用count(code)
。
答案 1 :(得分:0)
选择计数(代码)从表中选择列'代码',然后对它们进行计数,但是选择*只选择它们,但不进行计数。所以,如果你比较这两个,那么逻辑上选择*就是快。
对于我的表,其记录超过1,000,000条,执行时间为:
选择* = 0.9818625
select count(column_name)= 1.571275