高手帮忙,java 里写的数据库更新问题,一次循环最两个事务,一个update,一个删除,5000条数据用了3分多中,感觉有些慢

yuhouqingchen2020 2018-08-08 09:59:43

DELETE FROM KuaiJi WHERE DMID ="+ID+"
update KuaiJi d set d.DGDShenQingZT = 0, d.ZXCheXiaoText='"+chexiaoText+"' where d.DMID ="+ID+"
...全文
676 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 8 楼 TravyLee 的回复:
[quote=引用 楼主 ybsybsybsybs 的回复:]

DELETE FROM KuaiJi WHERE DMID ="+ID+"
update KuaiJi d set d.DGDShenQingZT = 0, d.ZXCheXiaoText='"+chexiaoText+"' where d.DMID ="+ID+"




如果是SQL Server,建议把语句整理出来,然后SET STATISTICS PROFILE ON ,然后再执行你的语句,把文本形式的执行计划贴出来。[/quote]

把你的删除和更新的语句改成select再试
  • 打赏
  • 举报
回复
引用 楼主 ybsybsybsybs 的回复:
DELETE FROM KuaiJi WHERE DMID ="+ID+"
update KuaiJi d set d.DGDShenQingZT = 0, d.ZXCheXiaoText='"+chexiaoText+"' where d.DMID ="+ID+"


如果是SQL Server,建议把语句整理出来,然后SET STATISTICS PROFILE ON ,然后再执行你的语句,把文本形式的执行计划贴出来。
吉普赛的歌 版主 2018-08-08
  • 打赏
  • 举报
回复
引用 3 楼 ybsybsybsybs 的回复:
不好意,表明写错误了,删除的是另外一个表,但是条件是一样的


贴一下这个吧:
EXEC sp_helpindex 'KuaiJi'
EXEC sp_spaceused 'KuaiJi'

另一个表你也替换上面脚本中的表名, 贴一下执行结果的截图
yuhouqingchen2020 2018-08-08
  • 打赏
  • 举报
回复
不好意,表明写错误了,删除的是另外一个表,但是条件是一样的
吉普赛的歌 版主 2018-08-08
  • 打赏
  • 举报
回复
--1.
DELETE
FROM KuaiJi
WHERE DMID = "+ID+"
--2.
UPDATE KuaiJi d
SET d.DGDShenQingZT = 0,
d.ZXCheXiaoText = '"+chexiaoText+"'
WHERE d.DMID = "+ID+"

--A. 先根据 DMID 删除, 再根据 DMID 更新, 那更新岂不是无用?
--B. 看下索引的情况及表大小,把截图贴出来:
EXEC sp_helpindex 'KuaiJi'
EXEC sp_spaceused 'KuaiJi'
二月十六 版主 2018-08-08
  • 打赏
  • 举报
回复
问题是什么?用的是mssql吗?
吉普赛的歌 版主 2018-08-08
  • 打赏
  • 举报
回复
按道理是要 有 4 个记录, 两个表的大小, 两个表的索引 情况。
你现在只提供了 1 个表的大小。

这种提供不了信息的, 就比较麻烦了。 你可以用手机拍照了传的吧。
yuhouqingchen2020 2018-08-08
  • 打赏
  • 举报
回复
name rows reserved data index_size unused
test 10000 392kb 352kb 8kb 32kb
图片传不上来,显示结果是这样的
yuhouqingchen2020 2018-08-08
  • 打赏
  • 举报
回复
name rows reserved data index_size unused
test 10000 392kb 352kb 8kb 32kb
图片传不上来,显示结果是这样的

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧