建立sql server索引时windows server2012宕机

zl759869747 2015-09-11 10:57:20
最近遇到一个很奇葩的问题,服务器上只要一跑sql server create index这个命令,跑一会儿后就突然宕机了,显示器是黑的,并且ping不通,但是机器还在运行。
开始以为是cpu的问题,使用工具测试,将CPU跑到99%,跑了好久也不宕机,好蛋疼啊,这样已经发生过4次了,现在都不敢建索引了。。。。求解决
...全文
328 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Ki1381 2015-09-15
  • 打赏
  • 举报
回复
没有具体数据和日志也只能拍脑袋猜一下了。 我倾向于认为建索引操作消耗了大量的CPU和IO等等资源,导致其它服务或请求不能及时响应,表现出来的现象就是假死。就好比你同事正忙着一边接电话一边改脚本,这时候你打了个手势想邀他出去一起抽颗烟但是他没却注意到。 仅仅压CPU到99%不死也完全是有可能的。SSD也要看具体情况,有的SSD读性能非常好,但写性能相对就一般般。有兴趣可以用perfmon先大致的看下。提醒一下楼主,索引就算做完也是需要定期维护的,所以哪天咬牙建完索引之后有必要测试下整理索引时是否也会发生类似的故障。 个人认为一亿条记录放在一个表里未必真有这个必要,应该寻求一个改进方案。
赵4老师 2015-09-14
  • 打赏
  • 举报
回复
引用 6 楼 zl759869747 的回复:
[quote=引用 5 楼 zhao4zhong1 的回复:] 在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
没太明白您意思,[/quote] 意思就是建索引的过程中某个有限的资源用尽了。 比如硬盘空间、内存空间、内部句柄、内部对象、整数范围、…… 我猜。 检查是否资源泄漏的办法之一: 在任务管理器 进程 查看 选择列 里面选择:内存使用、虚拟内存大小、句柄数、线程数、USER对象、GDI对象 让你的程序(进程)不退出,循环执行主流程很多遍,越多越好,比如1000000次甚至无限循环,记录以上各数值,再隔至少一小时,越长越好,比如一个月,再记录以上各数值。如果以上两组数值的差较大或随时间流逝不断增加,则铁定有对应资源的资源泄漏!
zl759869747 2015-09-14
  • 打赏
  • 举报
回复
引用 5 楼 zhao4zhong1 的回复:
在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
没太明白您意思,
赵4老师 2015-09-14
  • 打赏
  • 举报
回复
在现实世界中,除时间和空间可能是无限的以外,其它任何事物都是有限的。
zl759869747 2015-09-14
  • 打赏
  • 举报
回复
引用 1 楼 zhao4zhong1 的回复:
针对的表的记录条数太多。我猜。
数据量是非常大,1亿多条,我使用的是SSD,数据库文件大小 是800G,但为什么会使服务器宕机呢
zl759869747 2015-09-14
  • 打赏
  • 举报
回复
引用 2 楼 ki1381 的回复:
服务器配置如何?内存容量,磁盘性能等 如果在一张大表上建索引,通常会消耗大量磁盘IO的。
内存是64G,硬盘是SSD,基本上跑满了。但我限制了SQL的内存,只给了48G。但为什么SQL会导致机器宕机呢
Ki1381 2015-09-14
  • 打赏
  • 举报
回复
服务器配置如何?内存容量,磁盘性能等 如果在一张大表上建索引,通常会消耗大量磁盘IO的。
赵4老师 2015-09-11
  • 打赏
  • 举报
回复
针对的表的记录条数太多。我猜。

6,872

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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