Y yubo Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-30 #1 一个汇总集合的程序,需在客户端计算统计7000~12000记录 存入后台数据库,我现在计算一条Insert一条太慢 是否有快速方法?
D DSM2000 Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-30 #4 要是统计后要用户输入或修改的话,用存储过程不是很好处理, 要是只是统计后在客户端显示,客户确认后保存的话,用存储过程 是个好建议,它可以用一条Insert Into (...) Select ...语句实现 批量插入,效率很高。
要是统计后要用户输入或修改的话,用存储过程不是很好处理, 要是只是统计后在客户端显示,客户确认后保存的话,用存储过程 是个好建议,它可以用一条Insert Into (...) Select ...语句实现 批量插入,效率很高。
W wumeng Unregistered / Unconfirmed GUEST, unregistred user! 2000-06-30 #5 用存储过程确实会提高速度,但并不理想。我的方法是; 分批汇总后写入临时Table(最好作成Schedule),你的 汇总程序从临时Table读数据。
Y yubo Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-01 #7 menxin: 我慢在插入数据时. 追命: 存储过程好象不能提高我的速度.(至少我不会) DSM2000: 我的数据计算复杂,不能 Insert Into (...) Select ... wumeng 我读数据和写数据的速度还可以.(方法和你类似) 'Schedule'什么意思? 我的速度主要慢在 insert 语句执行后等待的时间. 是否有插入数据不等待,或等待时间短的方法? 请大家多帮忙,谢谢!!
menxin: 我慢在插入数据时. 追命: 存储过程好象不能提高我的速度.(至少我不会) DSM2000: 我的数据计算复杂,不能 Insert Into (...) Select ... wumeng 我读数据和写数据的速度还可以.(方法和你类似) 'Schedule'什么意思? 我的速度主要慢在 insert 语句执行后等待的时间. 是否有插入数据不等待,或等待时间短的方法? 请大家多帮忙,谢谢!!
H hpretty Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-01 #8 我建议你把代码和问题都写好,然后到大富翁排行榜上找 沈前卫 ... 之大虾发个邮件他们就可以帮你解决问题
L lxdufo Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #9 MS SQL 7 中的'bulk insert'专门用来大量插入,速度很快 mysql 也有类似的语句
Y yubo Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #10 hpretty: 是个好办法 lxdufo: 我用Oracle8,不只有否好办法。
温 温柔一刀 Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #11 >>我的速度主要慢在 insert 语句执行后等待的时间. 那就太容易解决了,把50-100条sql语句放到query中,一次执行, 速度即提高50-100倍!(但不能把所有sql都写进去哟!) query1.sql.clear; while .... begin query1.sql.add(yousql); if query1.sql.count>=100 then begin query1.execsql; query1.sql.clear; end; end; if query1.sql.count>0 then //不要忘了最后这一段 query1.execsql; 我的程序都是这样做的。
>>我的速度主要慢在 insert 语句执行后等待的时间. 那就太容易解决了,把50-100条sql语句放到query中,一次执行, 速度即提高50-100倍!(但不能把所有sql都写进去哟!) query1.sql.clear; while .... begin query1.sql.add(yousql); if query1.sql.count>=100 then begin query1.execsql; query1.sql.clear; end; end; if query1.sql.count>0 then //不要忘了最后这一段 query1.execsql; 我的程序都是这样做的。
Y yubo Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #12 温柔一刀: 你是说 >>query1.sql.clear; >>while .... >>begin >> query1.sql.add(yousql); >> if query1.sql.count>=100 then >> begin >> query1.execsql; >> query1.sql.clear; >> end; >>end; 你的意思是不是每100条执行一次?
温柔一刀: 你是说 >>query1.sql.clear; >>while .... >>begin >> query1.sql.add(yousql); >> if query1.sql.count>=100 then >> begin >> query1.execsql; >> query1.sql.clear; >> end; >>end; 你的意思是不是每100条执行一次?
程 程旭 Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-02 #13 如果单单追求速度的话,用MICROSOFT的DTS倒是个不错的选择。
温 温柔一刀 Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-03 #15 to yubo:就是这个意思, 另外,你在插入前,最好starttransaction, 全部完成后,commit,那样速度还会快很多。
Y yubo Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-06 #19 to 温柔一刀: 我两天来在试,也问了一些人,但好像不能一次执行多条SQL语句. 但我在Oracle数据库可以执行多条SQL语句! 请指教!
温 温柔一刀 Unregistered / Unconfirmed GUEST, unregistred user! 2000-07-06 #20 >>我两天来在试,也问了一些人,但好像不能一次执行多条SQL语句 恕我直言,你问的这些人恐怕不太灵光 除了select,其他语句(insert/update/delete)都可以一次执行多条。