问一个SQL Server 作业执行的效率问题

阿狸Ahri 2016-04-20 11:53:37
背景是这样的,
A 表 有500万条数据,B表有 一亿一千万条数据。

现在是需要根据 A表的时间段范围内的一个字段 跟 B表链接,然后修改B表的几个字段的值。 大概就是这样一个常规的更新,就是数据量大。

我的做法是,把A表的数据按照一个月一个月的取(大概7万多条数据),将其存入临时表,这样用这个小表连接大表B,

我刚才试了一下,吧2016年4月份的数据 进行更新之后(就用SQL查询去弄),大概执行了41分钟才执行完毕。

然后我吧这些代码,写成一个存储过程(就循环月份),代码原封不动就是刚才执行的sql语句。然后没执行一个月就把这个月份信息存到一个表里面去。

但是我刚才看了一下,大概20多分钟已经执行了差不多8个月了。所以我很诧异...是不是作业的执行效率是不是比普通的SQL查询是不是快很多。

PS:我特地查了一下,3月是6万多条 2月是9万多条,1月是6万多条,基本都差不多的数据,而且我看了一下数据更新的没有什么问题,所以排除是我代码写错的问题
...全文
163 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
看sql本身效率和作业没关系。 sql是否走了正确的执行计划,表的索引是否正确?
阿狸Ahri 2016-04-20
  • 打赏
  • 举报
回复
引用 1 楼 shoppo0505 的回复:
正常,这还要看你的索引配置
但目前来说,我没有设置其他索引了, 我是有索引,我还对字段做了分区储存的。 现在的问题是,我在sql查询 直接用SQL语句写,要40多分钟, 但是我什么都没改 直接写成一个存储。 怎么快了那么多,我中间没有另外做其他索引了。 开始我还以为是我机子卡,午休的时候我又执行了一遍,直接写SQL语句 还是 30多分钟
shoppo0505 2016-04-20
  • 打赏
  • 举报
回复
引用 2 楼 edfdfg 的回复:
[quote=引用 1 楼 shoppo0505 的回复:] 正常,这还要看你的索引配置
但目前来说,我没有设置其他索引了, 我是有索引,我还对字段做了分区储存的。 现在的问题是,我在sql查询 直接用SQL语句写,要40多分钟, 但是我什么都没改 直接写成一个存储。 怎么快了那么多,我中间没有另外做其他索引了。 开始我还以为是我机子卡,午休的时候我又执行了一遍,直接写SQL语句 还是 30多分钟[/quote] 你执行一个月就把这个月份信息存到一个表里面去,那原表中的数据越来越少了啊
shoppo0505 2016-04-20
  • 打赏
  • 举报
回复
正常,这还要看你的索引配置

34,590

社区成员

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

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