Foxtable(狐表)用户栏目专家坐堂 → 令人目瞪口呆的效率差别(有修正)


  共有42874人关注过本帖树形打印复制链接

主题:令人目瞪口呆的效率差别(有修正)

帅哥哟,离线,有人找我吗?
狐狸爸爸
  81楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/10 17:28:00 [只看该作者]

呵呵,不用了,懒得转来转去

 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  82楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 17:55:00 [只看该作者]

以下是引用狐狸爸爸在2010-12-10 17:28:00的发言:
呵呵,不用了,懒得转来转去

支持····


 回到顶部
帅哥哟,离线,有人找我吗?
mr725
  83楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2010/12/10 18:21:00 [只看该作者]

以下是引用狐狸爸爸在2010-12-10 17:09:00的发言:

 

嘿嘿,给我把这个躲在后台的高手揪出来!!

 

图片点击可在新窗口打开查看

哪来的高手,只是一个条件嘛,照葫芦画瓢,测试了这个Update {表A} Set 第三列 = True 后,加上条件就ok了。

比如筛选第一列和第二列重复的记录并在第三列勾选上:

Dim cmd As New SQLCommand

cmd.CommandText = "Update {表A} Set 第三列 = True Where {表A}.第一列 = {表A}.第二列"
cmd.ExecuteNonQuery  

DataTables("表A").load(False)
'Application.DoEvents()
Tables("表A").Filter = "第三列 = True"


 

[此贴子已经被作者于2010-12-10 18:27:30编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  84楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/11 0:25:00 [只看该作者]

呵呵,你这个和我的不同,你这个是找出第一列和第二相同的行,我那个是标出第一列和第二列都有的行。

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  85楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2010/12/13 10:49:00 [只看该作者]

以下是引用狐狸爸爸在2010-12-8 22:55:00的发言:

易服的东西优化后,可以2秒左右,原因大家仔细体会一下:

 


图片点击可在新窗口打开查看此主题相关图片如下:2010-12-13 9-45-29.png
图片点击可在新窗口打开查看
同样是12740行原代码120多秒,现只需25.734375秒,但不是我要结果。我要的结果是同一法定代表人的宗地排在一起按升序排列,一般法定代表人的宗地数最多不会超过50块。

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  86楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2010/12/13 16:44:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  87楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/13 16:45:00 [只看该作者]

我不懂你这个项目的,我只是就mr725提供的示例数据和代码进行优化测试。

如果结果能够出来,自己排序不就行了吗?

[此贴子已经被作者于2010-12-13 17:10:41编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
易服
  88楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:787 积分:6349 威望:0 精华:0 注册:2008/9/1 8:26:00
  发帖心情 Post By:2010/12/14 9:22:00 [只看该作者]

8楼代码结果是正确的,12740行8楼代码120多秒,现只需25.734375秒,但结果不正确。宗地序号列最多不会大于50,而现在有2000多,排序只要加上 Tables("申请表").Sort = "法定代表人 DESC" '降序排列

 回到顶部
帅哥哟,离线,有人找我吗?
小狐
  89楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:734 积分:5645 威望:0 精华:0 注册:2008/9/6 11:22:00
  发帖心情 Post By:2010/12/14 9:26:00 [只看该作者]

Dim cmd As New SQLCommand

cmd.CommandText = "Update {表A} Set 第三列 = True Where {表A}.第一列 = {表A}.第二列"
cmd.ExecuteNonQuery  

DataTables("表A").load(False)
'Application.DoEvents()
Tables("表A").Filter = "第三列 = True"

sql 中bit字段值好像不能用true,false吧?
[此贴子已经被作者于2010-12-14 9:49:39编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  90楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47448 积分:251048 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2010/12/14 9:35:00 [只看该作者]

以下是引用易服在2010-12-14 9:22:00的发言:
8楼代码结果是正确的,12740行8楼代码120多秒,现只需25.734375秒,但结果不正确。宗地序号列最多不会大于50,而现在有2000多,排序只要加上 Tables("申请表").Sort = "法定代表人 DESC" '降序排列

 

你完全可以参照48楼的代码来改写8楼的代码。

 

如果不能理解48楼的代码,可以看看这个帖子:

 

http://www.foxtable.com/dispbbs.asp?boardid=2&Id=8805&page=2

 

实在搞不定,再单独发帖提问。


 回到顶部
总数 96 上一页 1 2 3 4 5 6 7 8 9 10 下一页