前言

  做好日常巡检是数据库管理和维护的重要步骤,而且需要对每次巡检日期、结果进行登记,同时可能需要出一份巡检报告。

  本系列旨在解决一些常见的困扰:

不知道巡检哪些东西
不知道怎么样便捷体检
机器太多体检麻烦
生成报告困难,无法直观呈现结果
实例的参数对系统性能和稳定的影响很重要,系统级别的参数可能会根据业务的变化而变化,但防止系统参数设置不合理或被意外修改,系统参数检查也是巡检中的必要项。

系统参数概览

  1.在【检查项】-【全部】页面检查是否有设置不合理的参数,当参数设置未通过检查,会有警告。

具体参数设置

  在【参数】页查看具体的参数配置。

  注:合理参数与不合理参数为平台计算公式所得,个人针对系统特点进行的调整可能会被列入不合理范围(此情况可忽略警告)。

参数说明

参数设置不合理带来的影响:

参数设置不佳可能导致系统硬件无法发挥最大性能,或造成性能问题。例如:最大内存的设置,设置过小会导致系统无法利用内存而使性能出现严重问题,反之不设置或过大会导致在操作系统内存压力时强制释放SQL Server内存导致SQL Server无法工作。

1.最大并行度(max degree of parallelism)

一般建议系统如果超过32个CPU 那么设置成8或者4,如果系统中都是特别短小且频繁的语句建议设置成1(取消语句并行,要慎重真的符合你的场景才好)

注:很多时候并行度设置和你的服务器CPU配置有关,比如有几路、几核、是否超线程,一般来说不要跨物理CPU为好。

并行度的设置是针对实例级别的设置(SQL2016中可以对单独数据库设置)

微软官方建议:https://support.microsoft.com/zh-cn/kb/329204

2.并行开销的阀值(cost threshold for parallelism) 仅当运行同一查询的串行计划的估计开销高于在“并行的开销阈值”中设置的值时,SQL Server 才创建和运行该查询的并行计划。 开销指的是在特定硬件配置中运行串行计划估计需要花费的时间(秒)。 “并行的开销阈值”选项可设置为 0 到 32767 之间的任何值。 默认值为 5。

在某些情况下,即使查询的开销计划小于当前“并行的开销阈值”的值,也有可能选择并行计划。 出现这种情况,是因为使用并行还是串行计划是根据完成完全优化之前所提供的开销估计确定的。

注:主要控制SQL优化器何时选用并行计划,建议默认值,此值设置的越小优化器越容易选择并行计划。

3.服务器内存( min server memory 和 max server memory)

max server memory (建议设置): 一般推荐如果内存较小操作系统预留3G-4G ,如果内存大256或512以上在数据库内存无压力时预留5%-10%给操作系统,剩下给SQL SERVER ,如果服务器还有其他应用还要在SQL 中减掉应用所占的内存。

min server memory(服务器存在多个实例建议设置):当计算机上存在其他占用大量内存的进程时,这种方法也十分有用,因为它可确保 SQL Server 至少获得合理的内存量。 这种方法的缺点是:当启动新的实例(或任何其他进程)时,运行的实例可能会花费一些时间来释放内存,如果实例必须将修改后的页写回到数据库中来释放内存,则花费的时间可能会更长。

带有工作负荷的第一个实例通常分配所有的内存。 空闲实例或稍后启动的实例最终可能会只使用最少的可用内存量运行。 SQL Server 不会尝试均衡分配各个实例的内存使用量。 但是,所有实例均将响应 Windows 内存通知信号以调整它们内存需求量的大小。 Windows 不会使用内存通知 API 来平衡各个应用程序使用的内存。 它只提供有关系统内存可用性的全局反馈。

注:最大服务器内存控制 SQL Server 内存分配,包括缓冲池、编译内存、所有缓存、QE 内存授予、锁定管理器内存和 CLR 内存(实际上是 sys.dm_os_memory_clerks 中找到的任何内存分配器)。 线程栈的内存、内存堆、除 SQL Server 之外的链接服务器提供程序以及由非 SQL Server DLL 分配的任何内存都不受最大服务器内存控制。

注:SQL Server 不会在启动时立即分配 min server memory 中指定的内存量。 不过,除非降低 min server memory 的值,否则当内存使用量由于客户端负荷而达到该值后,SQL Server 不能释放内存。

4. xp_cmdshell 使SQL SERVER可以使用cmdshell功能应用

xp_cmdshell 属于外围应用配置在新安装的 SQL Server的默认配置中,功能并未启用。以最大限度地减少可能受到恶意用户攻击的功能数。

注:部分客户使用脚本备份数据库时开启xp_cmdshell功能,可以使用master.dbo.xp_delete_file 等系统过程代替。

总结  

参数设置不佳可能导致系统硬件无法发挥最大性能,或造成性能问题。例如:最大内存的设置,设置过小会导致系统无法利用内存而使性能出现严重问题,反之不设置或过大会导致在操作系统内存压力时强制释放SQL Server内存导致SQL Server无法工作。

  在巡检中及时发现系统参数配置变化与是否合理,这也是重要的巡检项。

北京格瑞趋势科技有限公司是聚焦于数据服务的高新技术企业,成立于2008年,创始团队及核心技术人员来自微软和雅虎。微软数据平台合作伙伴,卫宁健康数据平台战略合作伙伴。通过产品+服务双轮驱动的业务模式,14年间累计服务4000+客户,覆盖互联网、市政、交通、电信、医疗、教育、电力、制造业等各个领域。

SQL SERVER日常运维巡检系列之-实例级参数的更多相关文章

  1. SQL SERVER自动化运维系列

    SQL SERVER自动化运维系列 转自:https://www.cnblogs.com/zhijianliutang/p/5001142.html 本系列为SQL SERVER自动化运维的一些操作技 ...

  2. SQL Server 自动化运维系列

    本系列为SQL SERVER自动化运维的一些操作技巧点,所有内容都是根据日常运维过程中最经常遇到的问题,并为此形成了一些自动化运维的方式,皆为原创.... 供部分DBA和开发人员浏览借鉴,所应用平台基 ...

  3. 1、SQL Server自动化运维 - 备份(一)业务数据库

    为了能够恢复数据,数据库运维基础就是备份,备份自动化也是运维自动化首要进行的. 笔者的备份自动化,通过配置表快速配置为前提,同时记录备份过程,尽可能的减少人工操作.首先将SQL Server备份按用途 ...

  4. sql server自动化运维脚本

    数据库运维中盛传一个小段子,我误删除了数据库,改怎么办?有备份还原备份,没有备份就准备简历!听起来有趣但发生在谁身上,谁都笑不起来.接触了很多的客户发现90%客户的运维策略都不是很完善.本篇就分享一些 ...

  5. Istio 运维实战系列(3):让人头大的『无头服务』-下

    本系列文章将介绍用户从 Spring Cloud,Dubbo 等传统微服务框架迁移到 Istio 服务网格时的一些经验,以及在使用 Istio 过程中可能遇到的一些常见问题的解决方法. 失败的 Eur ...

  6. SQL Server自动化运维系列——监控跑批Job运行状态(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在上一篇文章中已经分析了SQL SERVER中关于邮 ...

  7. SQL Server自动化运维系列——监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

  8. SQL Server自动化运维系列——关于邮件通知那点事(.Net开发人员的福利)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 邮件作为一种非常便利的预警实现方式,在及时性和易用性 ...

  9. SQL Server自动化运维系列——关于数据收集(多服务器数据收集和性能监控)

    需求描述 在生产环境中,很多情况下需要采集数据,用以定位问题或者形成基线. 关于SQL Server中的数据采集有着很多种的解决思路,可以采用Trace.Profile.SQLdiag.扩展事件等诸多 ...

  10. SQL Server自动化运维系列 - 监控磁盘剩余空间及SQL Server错误日志(Power Shell)

    需求描述 在我们的生产环境中,大部分情况下需要有自己的运维体制,包括自己健康状态的检测等.如果发生异常,需要提前预警的,通知形式一般为发邮件告知. 在所有的自检流程中最基础的一个就是磁盘剩余空间检测. ...

随机推荐

  1. 分布式Session解决方案详解

    4种分布式session解决方案 cookie和session的区别和联系 cookie是本地客户端用来存储少量数据信息的,保存在客户端,用户能够很容易的获取,安全性不高,存储的数据量小session ...

  2. biancheng-Spring MVC-HandlerMapping

    一.HandlerMapping 作用是根据当前请求的找到对应的 Handler,并将 Handler(执行程序)与一堆 HandlerInterceptor(拦截器)封装到 HandlerExecu ...

  3. 详解 IntelliJ IDEA 配置和启动maven项目步骤

    一 .从svn中检出web项目: 1.如果是maven项目:首先配置仓库 2.从svn中检出maven项目: 3.检查项目是否是maven项目,如果不是转化成maven,然后点击,更新jar 二.配置 ...

  4. colab 使用技巧

    无法进入目录 import os path = "/content/TaBERT/" os.chdir(path) print(os.getcwd()) 无法执行conda !pi ...

  5. uni-app封装网络请求promise

    在项目的根目录下,创建http文件夹. 然后在创建request.js文件 文件代码如下 export function apiapi(myurl,myget,mydata,tou="Acc ...

  6. 云主机(操作系统:CentOS7版本)安装nfs客户端,挂载文件系统

    本文分享自天翼云开发者社区<云主机(操作系统:CentOS7版本)安装nfs客户端,挂载文件系统>,作者:c****n 1.保证宿主机上有nfs-utils 1.1若宿主机yum源不可以用 ...

  7. 闲话 718:1x2 骨牌的矩形覆盖计数

    注:以下的 \(i\) 不在下标时均代表虚数单位,\([n]=\{1,2,...,n\}\). 首先把格子当成点,连一个图出来:上下格子连向上的边,左右格子交替连向左/向右的边.这样求完美匹配方案数即 ...

  8. FANUC发那科机器人控制箱维修操作流程

    FANUC发那科机器人在工业自动化领域中占有重要地位,其高效.稳定和精确的性能赢得了众多用户的青睐.然而,随着使用时间的增长,可能会出现FANUC机器人控制柜故障,影响到发那科机器人的正常运行.本文将 ...

  9. 【Unity】URP中的UGUIShader实现

    [Unity]URP 中的 UGUIShader 实现 参考官方 Shader 代码实现: https://github.com/TwoTailsGames/Unity-Built-in-Shader ...

  10. AngleSharp :在 C# 中轻松解析和操作 HTML/XML 文档

    AngleSharp 是一个 C# 库,主要用于解析和操作 HTML 和 XML 文档,类似于浏览器的 DOM 操作.允许你在 C# 中使用类似浏览器的方式处理网页数据,进行网页抓取.数据提取和处理等 ...