首页 > 其他分享 >存储过程跑太长时间,可能是这个原因!

存储过程跑太长时间,可能是这个原因!

时间:2023-09-11 18:32:28浏览次数:28  
标签:存储 长时间 四张 插入 复制 原始 数据量 原因

 我这两天被一个问题缠住了,是关于四表连接的问题。我写了一个存储过程,本来就四张表,我用上了存储过程,一定有我(老板)觉得应该用存储过程的原因。


       这里的业务是这样的:四张表分表为A B C D,其中B为A的复制表,D为C的复制表,复制表与原始表的差别只是多加了一个字段。而我做的业务更加简单,就是在一定的条件下,将原始表的数据传给复制表,然后再删除原始表中已经被传递的数据。四张表就这么操作,然后就没了。但是!就这么一个简单的功能,我的存储过程居然跑出了两百多秒的战绩。


       我一开始怀疑的是数据量的问题,因为数据量太大,在’复制‘的操作中也是很容易存储过程跑不动,卡死的。但是我的四张表,两张复制表清空,两张原始表加起来的数据才不到4万条,还达不到因为数据量太大卡死我的存储过程的时候吧。于是,我排除了这个错误。


       第二个,经过分析,我又怀疑是索引的问题,全文检索导致的查询缓慢,进程卡死,但是我那看起来平平无奇的语句,不像会这么搞事情的呀!代码不方便贴出来,给大家举个例子:


insert into A select H.P.....


就这一句语句,能有啥问题嘛!


于是,我直接跳过这个可疑点。


       第三个,我怀疑是不是锁表的问题,于是我又开始通过查询锁表的语句来判断自己的原始表是不是被锁了,资源同时占用,果然!表没被锁~我也白多疑了。


       最后一个,就是我经常怀疑但不常出现的怀疑点,是不是我这数据库管理软件有问题啊...DBeaver,这家伙常常搞延迟,常常别的管理工具都查到了,但这家伙的脑回路还在遛弯!于是我尝试着结合系统CURD去查别的数据量较大的表的数据,看看查询是否有误,很正常啊~它虽然有时不靠谱,但起码此时是正常的。于是我又排除了这个错误。


       于是,我开始最笨也是最有效的方法,逐句排查。果然被我发现了端倪。我的原始表中每个表基本是40多个字段,而我每次插入都是不带列插入,直接一次性全部插入,这就导致了插入非常缓慢,数据库需要自己帮我检索,我目前插入的值是对应原始表的哪个列,我不给它,它就自己找,所以造成了我就干等到两百多秒。所以 请把你的每一行列写清楚!


       真的涨了见识,这也让我在日后的语句更加”谨言慎行“!像这个问题,我觉得不需要优化,只需要你根据业务填字段,细心再细心。


       如果大家有遇到类似的疑惑,可以参考一下。这是我的‘解题思路’。


       提前祝大家’国庆快乐‘,还有十三天班就放假啦!


       致力于解决数据库类的bug,有公众号可共享:会用数据库   (欢迎大家关注哦)


标签:存储,长时间,四张,插入,复制,原始,数据量,原因
From: https://blog.51cto.com/u_16248023/7437799

相关文章

  • 安防监控/视频汇聚/云存储/智能视频分析平台EasyCVR显示CPU过载,如何解决?
    视频云存储/安防监控/视频汇聚平台EasyCVR基于云边端智能协同,支持海量视频的轻量化接入与汇聚、转码与处理、全网智能分发、视频集中存储等。安防视频监控系统EasyCVR拓展性强,视频能力丰富,具体可实现视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、......
  • 视频直播点播平台EasyDSS流媒体服务器按时间调用录像,提示数据查询错误是什么原因?
    EasyDSS能实现视频流媒体的上传、转码、存储、录像、推拉流、直播、点播等功能,具备超低延迟、超高画质、超大并发访问量等特点,可应用在多样化的场景中,如:在线课堂、教育直播、校园活动直播、企业培训、游戏直播等。为了便于用户二次开发、调用与集成,我们也提供了丰富的API接口供用......
  • 云存储的实际应用
    本文分享自天翼云开发者社区《云存储的实际应用》,作者:5****m一、引言云存储是一种基于云计算的存储服务,它通过互联网提供数据的存储、备份和处理服务。云存储的发展源于传统存储方式的不足,传统存储方式需要用户自行选择硬件设备、建立存储系统,并进行日常维护和管理,这需要大量......
  • foreach循环无法修改值的原因
    在我们的for(元素类型 元素变量:待遍历对象)的循环方式之中,我们我们的元素变量只是起到了一个临时变量的作用,好似一个指针指向我们的数组,在这个循环体之中修改我们的数组不会成功,因为我们修改的是这个元素变量的内容,而我们的数组之中的内容并没有被修改。举个例子inta=2;//比作......
  • 极空间NAS存储 -家用ssh功能和动态域名解析
    拉取自定义镜像拉取镜像映射端口访问Docker获取ipssh访问容器动态域名解析apiyuminstallpython3-pip-......
  • _tkinter.TclError: invalid command name ".!label.!text" 原因及方法
    文本框对象报错_tkinter.TclError:invalidcommandname".!label.!text"具体背景:创建txt文本框,用for循环去创建文本框,然后全局变量接受文本框对象,重复进入界面后就出现错误提示提示对象名无效,回去翻看代码得出原因,下列是源代码text_boxes=[]#外部数组用于存储文本框对......
  • RTSP/Onvif安防视频云平台EasyNVR视频监控汇聚平台显示视频流却无法播放,是什么原因?
    EasyNVR是基于RTSP/Onvif协议的视频平台,拥有视频监控直播、录像、云存储、检索与回看、国标级联等视频能力,可支持将接入的视频流进行全平台、全终端的分发,分发的视频流包括RTSP、RTMP、HTTP-FLV、WS-FLV、HLS、WebRTC等格式。 有用户反馈,在EasyNVR平台播放时,有视频流但却一直......
  • iSCSI:提供基于 iSCSI 的网络存储(服务端以及启动器配置)
    写在前面准备考试整理相关笔记博文内容涉及iSCSI简单介绍,服务端启动器配置以及一个使用Demo理解不足小伙伴帮忙指正「 对每个人而言,真正的职责只有一个:找到自我。然后在心中坚守其一生,全心全意,永不停息。所有其它的路都是不完整的,是人的逃避方式,是对大众理想的懦弱回归,是......
  • HTML5 Canvas 数据持久化存储之属性列表
    正常我们设置属性的时候,属性和属性值的keyvalue对应,但是在实际开发中,经常遇到属性值可能需要从多项中选择,这个时候用原生的HTML5配合JavaScript来实现这个功能会让人非常头疼,我试着用 HTforWeb 来实现了这个功能,感觉整体实践起来还是比较容易的,所以在这边跟大家分享一......
  • 二叉树(顺序存储要维护关系)
                    ......