以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 后台更新同一个查询条件的多个字段,能优化吗? (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=189227) |
-- 作者:guosheng -- 发布时间:2023/11/17 16:41:00 -- 后台更新同一个查询条件的多个字段,能优化吗? 下面的代码,更新数据几百号就要几分钟。 DataTables("租赁项目结转明细表").SQLReplaceFor("实际结转日期", dr("实际结转日期"), "条件1") DataTables("租赁项目结转明细表").SQLReplaceFor("实际结转日期1", dr("实际结转日期1"), "条件1") DataTables("租赁项目结转明细表").SQLReplaceFor("结转提交人", "张婷婷", "条件1") DataTables("租赁项目结转明细表").SQLReplaceFor("结转提交日期", Date.Today, "条件1") DataTables("租赁项目结转明细表").SQLReplaceFor("应结转而未结转的年份", "", "条件1")
|
-- 作者:linyunu -- 发布时间:2023/11/17 16:54:00 -- 改用SQLCommand |
-- 作者:有点蓝 -- 发布时间:2023/11/17 17:05:00 -- SQLReplaceFor只能一个个来,使用sql吧:http://www.foxtable.com/webhelp/topics/3266.htm |
-- 作者:guosheng -- 发布时间:2023/11/17 17:06:00 -- 改成下面这样子,800条数,跟sqlselect相比执行时间好像差不太多啊 cmd.CommandText = "U PDA TE {租赁项目结转明细表} SET 实际结转日期 = \'" & dr("实际结转日期") & "\', 实际结转日期1= \'" & dr("实际结转日期1") & "\',结转提交人= \'张婷婷\', 结转提交日期= \'" & Date.Today & "\',应结转而未结转的年份 =\'\' WHERE 条件1 \'
|
-- 作者:有点蓝 -- 发布时间:2023/11/17 17:24:00 -- 肯定快得多的。 另外建议使用参数化的用法。检查使用的条件列可以加上索引
|
-- 作者:guosheng -- 发布时间:2023/11/17 17:27:00 -- 加上索引 什么意思啊,是指的Identify吗 加上会效率提高吗 [此贴子已经被作者于2023/11/17 17:27:35编辑过]
|
-- 作者:有点蓝 -- 发布时间:2023/11/17 17:34:00 -- https://www.baidu.com/baidu?ie=UTF-8&word=%E4%BB%80%E4%B9%88%E6%98%AF%E6%95%B0%E6%8D%AE%E5%BA%93%E7%B4%A2%E5%BC%95 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=158943
如果使用的外部表,设置索引可以有效提高sql查询的速度。内部表就不用管这个了 |