Delphi 获取大数据表的记录数,该怎么解决
Delphi 获取大数据表的记录数
Delphi adoquery 如何获取大数据表的记录数’
每个表在千万行左右;求大侠指教;oracle数据库。
------解决思路----------------------
这个和行数无关
with qry do
begin
close;
sql.text:='select count(1) as cnt from tablename';
open;
if qry.isActive and not qry.isEmpty then
begin
Result :=Fields[0].AsString;
end;
end;
------解决思路----------------------
千万行纪录, 必须得分页了,
oracle 的分页很好写的。
传送门(关于分页):
http://www.jb51.net/article/53608.htm
------解决思路----------------------
关于大数据的查询,一句话就是慢。
通常解决的办法,SQL分页显示,但随着数据量加大,也是起来越慢。
关键是要做好前期准备工作,就是加大条件的限制,这样,可以减少数据的量,通过减少数据,才是加快查询速度的好办法。
------解决思路----------------------
最好还是先在数据库中建立视图,然后在视图上查询结果。
如楼主要的结果,可建一个视图:view_reccount:
SELECT COUNT(*) FROM thetablename
然后直接在DELPHI中写上SQL查询:
qry1.close;
qry1.sql.text:='SELECT * FROM view_reccount';
qry1.open;
if qry1.recordcount>0 then
edit1.text:=qry1.fields[0].asstring
else
edit1.text:='0';
使用视图的好处是,数据会更合理自动分配资源,对视图进行准备,而不是每次查询,都会检索整个数据表
Delphi adoquery 如何获取大数据表的记录数’
每个表在千万行左右;求大侠指教;oracle数据库。
------解决思路----------------------
这个和行数无关
with qry do
begin
close;
sql.text:='select count(1) as cnt from tablename';
open;
if qry.isActive and not qry.isEmpty then
begin
Result :=Fields[0].AsString;
end;
end;
------解决思路----------------------
千万行纪录, 必须得分页了,
oracle 的分页很好写的。
传送门(关于分页):
http://www.jb51.net/article/53608.htm
------解决思路----------------------
关于大数据的查询,一句话就是慢。
通常解决的办法,SQL分页显示,但随着数据量加大,也是起来越慢。
关键是要做好前期准备工作,就是加大条件的限制,这样,可以减少数据的量,通过减少数据,才是加快查询速度的好办法。
------解决思路----------------------
最好还是先在数据库中建立视图,然后在视图上查询结果。
如楼主要的结果,可建一个视图:view_reccount:
SELECT COUNT(*) FROM thetablename
然后直接在DELPHI中写上SQL查询:
qry1.close;
qry1.sql.text:='SELECT * FROM view_reccount';
qry1.open;
if qry1.recordcount>0 then
edit1.text:=qry1.fields[0].asstring
else
edit1.text:='0';
使用视图的好处是,数据会更合理自动分配资源,对视图进行准备,而不是每次查询,都会检索整个数据表