设为首页 收藏本站
查看: 853|回复: 0

[经验分享] SQL Server 数据自动化运维

[复制链接]
发表于 2018-10-12 09:15:09 | 显示全部楼层 |阅读模式
  SQL Server 数据自动化运维
  说到当前的数据库类型,当前主要流行Mysql、Sql Server、Oracle等三种,区别相信大家都已经非常熟悉了,所以在此就不多介绍了,今天我们主要介绍一下我近期工作中遇到的问题,我们的门禁数据库数据存放的数据量过大,导致从页面上操作及查询非常缓慢影响日常操作效率,由于领导要求数据需要保留,方便日后查询,
  所以我们一般通过日期判断指定日期以外的数据删除这个不可以实现了,当然换个思路想将指定的日期以外的数据插入到备份数据库中,然后再根据指定日期外的数据删除,其实这样的思路也是对的,但是这样的话,我需要执行两条语句,如果第一条失败了,第二条肯定无法执行了,所以我们按照这个思路将两条命令整合成一条,接下来我们模拟一下。
  我们表中有300多万条数据,有点多,查询肯定慢
DSC0000.jpg

  我们为了保证数据在操作过程中安全性,我们需要对表进行备份;
  我们将cardinfo表复制一份,然后再操作;
  select * into cardinfo_temp from cardinfo
DSC0001.jpg

  我们查看
  select * into cardinfo_temp from DB.dbo.cardinfo
DSC0002.jpg

  接下来我们就准备开始了操作前准备了
  我们需要创建一张表做为数据备份的表,当然既然是备份,表的结构都必须是一样的,所以我们还是按照以上方法,复制一张备份表,然后清空数据,
  select * into cardinfo_bak from DB.dbo.cardinfo
DSC0003.jpg

  然后清空备份表中的数据
  delete cardinfo_bak
DSC0004.jpg

  我们确认数据
  select count(*) from cardinfo_bak
DSC0005.jpg

  我们要把3个月以外的数据全部移动到备份的表中
  

delete from cardinfo  
output deleted.* into cardinfo_bak
  
where card_date_ts < dateadd(mm,-3,getdate())
  

DSC0006.jpg

  我们开始执行,执行有报错
DSC0007.jpg

  我们根据报错有两种解决方法,但是我们用第二种;
  2.删除并重建表DB_Bak.dbo.acc_monitor_log,重建时将表中原来的标识列上的标识(identity)属性去除,所以我们来修改,右击表---设计---ID---表示属性---将是更改为否
DSC0008.jpg

  然后保存后,我们再次执行,执行成功;
DSC0009.jpg

  接下来我们统计数据
  

select count(*) from cardinfo  
select count(*) from cardinfo_bak
  

DSC00010.jpg

  如果我们想操作三个月以内的数据的话,
  

delete from cardinfo  
output deleted.* into cardinfo_bak
  
where card_date_tls between dateadd(mm,-3,getdate()) and getdate();
  

  我们然后需要将该执行命令通过配置作业来定时执行
  我们需要开启SQL Agent服务才可以哦
  我们新建作业
DSC00011.jpg

  定义作业名称
DSC00012.jpg

  在步骤页面---新建
DSC00013.jpg

  定义步骤名称、命令、及数据库信息等
DSC00014.jpg

  保存确认
DSC00015.jpg

  新家计划---执行时间
DSC00016.jpg

  最终完成整个配置
DSC00017.jpg

  再次我们的环境就介绍到这了,有问题可以给我留言,谢谢



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-620599-1-1.html 上篇帖子: 值得收藏的Microsoft SQL Server下的SQL语句 下篇帖子: SQL Server vNext CTP1 on Linux
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表