2 20020401wgy Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-25 #1 上百万记录的数据库(SQL)打开数据表时很慢(查询) 等到查询完后才能做其它操作, 我用线程也不起作用 各专家如何做好?
Z zjan521 Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-27 #2 将你的查询优化一下 用线程的话应该可以解决界面等待的问题的。
W windbell Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-28 #3 这可能有很多原因 1、表索引没有建好; 这个就要根据你的表的用途及常用查询来判断如何建立一个有效的索引 2、查询语句没有优化; 根据你的索引来优化查询,将无关的数据过滤出去, 3、在你查询时,tquery或者其它查询控件与显示控件(如dbgrid)之间仍然有关联。 在查询期间,可以使用query1.disablecontrols来断开与显示控件的连接,在查询结束后再 连接上。 以上说的都很简单,不只对你有没有帮助?
这可能有很多原因 1、表索引没有建好; 这个就要根据你的表的用途及常用查询来判断如何建立一个有效的索引 2、查询语句没有优化; 根据你的索引来优化查询,将无关的数据过滤出去, 3、在你查询时,tquery或者其它查询控件与显示控件(如dbgrid)之间仍然有关联。 在查询期间,可以使用query1.disablecontrols来断开与显示控件的连接,在查询结束后再 连接上。 以上说的都很简单,不只对你有没有帮助?
S shiningplus Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-28 #4 上百万记录,当然慢,如果不是打印报表可以考虑分批取数据
M mouke Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-29 #5 可以用CDS,在用多线程分批将数据放到不同的CDS中,然后将查询通过多线程提交到不同的CDS进行查询
小 小小鹰 Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-29 #6 有没有必要一次读取那么多条记录?????? 真有上百万条记录,用什么方法我看读取都会很慢的[][][][][]
F f-h-s Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-29 #8 select top 1000 字段名 ...... from 表名 条件 order by 字段名 这样仅仅取按某个顺序排列的前1000个,这样处理应当可以将你的效率 提高几十倍 (就是分批取数据的方法)
select top 1000 字段名 ...... from 表名 条件 order by 字段名 这样仅仅取按某个顺序排列的前1000个,这样处理应当可以将你的效率 提高几十倍 (就是分批取数据的方法)
R rester Unregistered / Unconfirmed GUEST, unregistred user! 2003-04-29 #11 改进你的程序.数据只在需要时才到前台.(除了报表,还有什么需要将上百万的数据送到前台?)
2 20020401wgy Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-06 #13 各位大虾 因5.1放假没有能及时给分 对不起! 你们的答案都是关键性的问题 数据已经优化和索引 但过滤没有什么意义 因为我是按时间日期统计(过滤条件也就是查询统计查询条件)
Z zealothasu Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-08 #14 如果使用ado连接 你可以设置为多线程模式 这样在开头接受一定的数据后窗口就可以活动了
C chenxz Unregistered / Unconfirmed GUEST, unregistred user! 2003-05-19 #16 分批处理,但数据表中应该有一个字段是登记当前查询到哪里的标记,以便下次继续查询。