VB Access group by,order by查询速度超慢,求指点优化
使用ACCESS数据库,查询大约6W条记录,然后将查询结果绑定到VSFLEXGRID, 查询出来的结果只有30条
但耗时实在让人无法接受,求高手指教!
代码如下:
Dim tmpRS As New ADODB.Recordset
'sqlStr = "SELECT * FROM [tbDATA] WHERE ID IN (SELECT MAX(ID) FROM [tbDATA] GROUP BY Process_No) ORDER BY ID ASC" '耗时:2219ms
'sqlStr = "SELECT * FROM [tbDATA] WHERE ID IN (SELECT MAX(ID) FROM [tbDATA] GROUP BY Process_No)" '耗时:115ms
'sqlStr = "SELECT * FROM [tbDATA] WHERE ID IN (SELECT MAX(ID) FROM [tbDATA] GROUP BY Process_No) ORDER BY ID,Process_No ASC" '耗时:2219ms
'sqlStr = "SELECT * FROM [tbDATA] WHERE ID IN (SELECT MAX(ID) FROM [tbDATA] GROUP BY Process_No) ORDER BY Process_No ASC" '耗时:2729ms
sqlStr = "SELECT * INTO TempTB FROM [tbDATA] WHERE ID IN (SELECT MAX(ID) FROM [tbDATA] GROUP BY Process_No)" '耗时:2687ms 本想先将查询结果放入一个临时表,然后再排序绑定
tmpRS.Open sqlStr, tmpCN(ch), 1, 1
Set VSFlexGrid3(ch).DataSource = tmpRS
上述代码,查询快的时候,绑定就慢,查询慢的时候,绑定就慢
补充:VB环境下使用ADO查询,ACCESS数据库,ID为主键,有索引,其他列无索引