重启SQL Server——总是好事?
在实际工作中,我经常看到——有时人们定期重启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——总是好事?的更多相关文章
- 重启sql server服务两种方式
1.第一种重启SQl server的方法 点击左侧的数据库重启 如图 右击有个重启操作 2.第二个重启sql server方法
- sql server停止和重启命令
http://www.ynpxrz.com/n822732c2024.aspx 我们知道:sql server重启分分两步走 1.停止 net stop mssqlserver 2.重启 net st ...
- 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn) 第一篇http://www.cnblogs.com/lyhabc/p/4678330.html第二篇http://w ...
- SQL Server 常用内置函数(built-in)持续整理
本文用于收集在运维中经常使用的系统内置函数,持续整理中 一,常用Metadata函数 1,查看数据库的ID和Name db_id(‘DB Name’),db_name('DB ID') 2,查看对象的 ...
- (转) 从0开始搭建SQL Server AlwaysOn 第三篇(配置AlwaysOn)
原文地址: http://www.cnblogs.com/lyhabc/p/4682986.html 这一篇是从0开始搭建SQL Server AlwaysOn 的第三篇,这一篇才真正开始搭建Alwa ...
- SQL Server 多实例下的复制
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 搭建步骤(Procedure) 注意事项(Attention) 二.背景(Contexts) ...
- SQL Server 即时文件初始化
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 基础知识(Rudimentary Knowledge) 实现过程(Process) 疑问(Qu ...
- SQL Server启动的几种方法
SQL Server 启动有以下几种方法: (1)在Control Panel——Administrative Tools——Services,找到SQL Server (XXX)进行启动. 其中XX ...
- 慎重管理SQL Server服务的登录(启动)账户和密码
今天是大年初三,先跟大家拜个年,祝大家新年快乐.今天处理了一个alwaysOn问题——辅助副本因为磁盘空间不足一直显示[未同步——可疑],在日志中可以看到数据库处于挂起状态,与主副本失去同步.原以为只 ...
随机推荐
- Ubantu 下安装 tensorflow
# 在 Linux 上: $ sudo apt-get install python-pip python-dev python-virtualenv $ virtualenv --system-si ...
- ruby 访问新浪微博API post方式和get方式
require 'net/https' require 'uri' def post_api(api, args) uri = URI.parse api http = Net::HTTP.new(u ...
- React源码剖析系列 - 生命周期的管理艺术
目前,前端领域中 React 势头正盛,很少能够深入剖析内部实现机制和原理.本系列文章希望通过剖析 React 源码,理解其内部的实现原理,知其然更要知其所以然. 对于 React,其组件生命周期(C ...
- [ASP.NET MVC 小牛之路]01 - 理解MVC模式
本人博客已转移至:http://www.exblr.com/liam PS:MVC出来很久了,工作上一直没机会用.出于兴趣,工作之余我将展开对MVC的深入学习,通过博文来记录所学所得,并希望能得到各 ...
- 【Android环境搭建】解决安装使用SDK Manager更新时的问题
问题描述: 安装使用SDK Manager更新时出现问题 Failed to fetch URL https://dl-ssl.google.com/android/repository/repos ...
- iOS创建安全的单例
创建安全的单例 #import "Singleton.h" @implementation Singleton static Singleton* _instance = nil; ...
- Laravel5.0学习--03 Artisan命令
本文以laravel5.0.22为例. 简介 Artisan 是 Laravel 内置的命令行接口.它提供了一些有用的命令协助您开发,它是由强大的 Symfony Console 组件所驱动.利用它, ...
- 浅谈HTML5单页面架构(一)——requirejs + angular + angular-route
心血来潮,打算结合实际开发的经验,浅谈一下HTML5单页面App或网页的架构. 众所周知,现在移动Webapp越来越多,例如天猫.京东.国美这些都是很好的例子.而在Webapp中,又要数单页面架构体验 ...
- [转]深入理解JavaScript的变量作用域
1.JavaScript的作用域链 2.函数体内部,局部变量的优先级比同名的全局变量高. 3.JavaScript没有块级作用域. 4.函数中声明的变量在整个函数中都有定义. 5.未使用var关键字定 ...
- 网站初步收工---www.dkill.net
今天10.30左右备案核审成功了,然后一天都在忙部署和一些其他的东西,中途也写了很多文档,遇到很多问题,直接琢磨了N久,暂时发了这么多教程,明天揭露阿里云的各种坑(先用winServer服务器,有时间 ...