以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLFind 数据量大非常慢,求高手解答 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93451) |
-- 作者:celchentao -- 发布时间:2016/11/29 12:33:00 -- SQLFind 数据量大非常慢,求高手解答 代码如下 DataColChanged 事件 If e.DataCol.Name = "运单编号" Then \'如果内容发生变动的是产品列 If e.NewValue Is Nothing Then \'如果新值是空白,也就是产品列的内容为空 e.DataRow("客户名称") = Nothing Else Dim dr As DataRow Dim N As Date = e.DataRow("扫描日期") dr = DataTables("top_trade").sqlFind("[top_out_sid] = \'" & e.DataRow("运单编号") & "\'") If dr IsNot Nothing Then \'如果找到了同名的产品行,也就是dr不是Nothing e.DataRow("客户名称") = dr("top_seller_nick") e.DataRow("年月")=N.year & "年" & N.Month & "月" Else e.DataRow("客户名称") = Nothing End If End If End If 以上代码 单条运行还行 数据量几百上千条的时候 运行非常缓慢 但是 把 dr = DataTables("top_trade").sqlFind("[top_out_sid] = \'" & e.DataRow("运单编号") & "\'") 中的 sqlFind改为 Find 后 就很快 求高手 解答
|
-- 作者:celchentao -- 发布时间:2016/11/29 12:37:00 -- 在线急等 |
-- 作者:有点色 -- 发布时间:2016/11/29 13:59:00 -- 不要循环执行sqlfind函数,如果要大批量执行,还不如把表数据全部加载出来,再直接find。 |
-- 作者:celchentao -- 发布时间:2016/11/29 14:26:00 -- 如果数据量几万条 这样的话加载起来 软件速度会非常慢! 如果数据量几万条 这样的话加载起来 软件速度会非常慢! |
-- 作者:狐狸爸爸 -- 发布时间:2016/11/29 14:43:00 -- 你是重置列的时候慢吧? 几千行的话,就是几千次SQLFind,肯定慢的。 如果经常要重置,就加载经常要查询的数据表,改用Find查询,加载几万行没有关系。
|