重启SQL Server——总是好事?
2016-08-09 16:06
260 查看
在实际工作中,我经常看到——有时人们定期重启SQL Server!我们都希望接受,SQL Server的定期重启并不真的是一个好主意。但在今天的文章里,我想进一步讨论下,当你定期重启你的SQL Server时,有哪些副作用。
感谢关注!
缓冲池(Buffer Pool)
一旦你重启你的SQL Server,你会丢失缓冲池的所有内容,这是SQL Server保存来自存储子系统的数据库页。作为副作用,在重启后,你的查询会简单的更慢,因为SQL Server需要进行很多的物理I/O读,从存储子系统请求回数据到缓冲池。计划缓存(Plan Cache)
SQL Server重启的另一个非常重要的副作用时,你丢失所有来自计划缓存,编译好的执行计划。对于每个提交到数据库的每个查询,SQL Server现在必须再次编译物理执行计划——而且这会花点时间。当你有一些不稳定的执行计划,这会更糟,SQL Server会生成和先前不一样的执行计划。在这个情况下,你的整个性能会惨遭伤害,因为没有足够的执行计划被缓存,然后被盲目重用——反复如此……动态管理视图和函数(DMVs/DMFs)
在上一篇文章里,SQL Server存储各个动态管理视图和函数的整个数据的地方:它直接存储在sqlservr.exe进程空间里。那么当你重启SQL Server时,sqlservr.exe进程被销毁并重启。因此,通过各个动态管理视图和函数访问的数据都不可用。从性能故障排除角度来说,这非常不好,因为重启后,对于SQL Server的先前的生命周期里,你已经啥也不知道了。故障恢复(Crash Recovery)
当你重启你的SQL Server,每个数据库会经历故障恢复过程,在这里SQL Server最终进行所有未提交事务的回滚,将数据库恢复到一致的状态。因此——作为副作用——当你发起SQL Server重启时,你会丢失尚未提交的所有事务。你也要记住:在故障恢复过程中,所有未提交的事务会直接回滚。小结
我希望今天的文章会给你一些想法:为什么定期重启SQL Server不是个好主意。当人们在一些特定情况里重启SQL Server,但这不是人们定期重启的意义,因为那是因为你有问题才重启,对此,我没问题。如果你有问题,你应该去调查它们,找出潜在的根源是什么。感谢关注!
原文链接:
https://www.sqlpassion.at/archive/2016/08/08/restarting-sql-server-always-a-good-idea相关文章推荐
- SQL Server 2008安装时总是提示重启计算机的解决方法~
- sql server 2008 sp1 安装总是提示重启系统
- 安装SQL Server 2008时 总是不断要求重启电脑的解决办法
- 通过指令停止/重启SQL SERVER 服务
- SQL Server 2008 重启电脑失败
- 运行程序选择总是重启tomcat后,如何修改设置。
- sql server 2008 win7下安装检查,重启计算机 失败
- SQL server总是不能远程连接
- SQL server重启管理命令行以及SQL Server启动的几种方法
- 锐捷总是提示重启怎么办?
- 电脑开机进不了系统,总是自动重启解决办法
- sql server 2008安装需要一直重启。但重启后又没有达到效果。
- 安装SQL Server 2000 提示文件挂起错误解决办法---不需重启电脑
- SQL Server 2008 安装重启电脑失败
- 解决SQL Server 2008安装时出现不能在控件上调用 Invoke 或 BeginInvoke错误或者需要重启N次后还提示需要重启的方法
- 为什么我的SQL server 在附加数据库后,数据库总是变成了只读?
- 僵尸网络:大些并不总是好事
- 安装MSSQL实例时总是提示重启计算机问题的解决
- SQL Server 安装时提示挂起的文件操作,必须重启计算机解决办法
- sql server 2008 express 安装的时提示“重启计算机失败"