前言

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

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

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

系统参数概览

  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. 教你实现GPUImage【OpenGL渲染原理】

    一.前言 本篇主要讲解GPUImage底层是如何渲染的,GPUImage底层使用的是OPENGL,操控GPU来实现屏幕展示 由于网上OpenGL实战资料特别少,官方文档对一些方法也是解释不清楚,避免广 ...

  2. biancheng-Spring MVC-HandlerMapping

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

  3. 将Ldap组织结构及用户信息同步到MySQL,用Spring Boot项目操作

    从上一篇<将Mybatis引入Spring Boot项目连接数据库操作>知道了如何在Spring Boot项目操作数据库,学会了增删查改基本操作方法.本节记录如何从Ldap获取组织结构及用 ...

  4. Java怎样实现将数据导出为Word文档

    文章首发于我的博客:Java怎样实现将数据导出为Word文档 - Liu Zijian's Blog 我们在开发一些系统的时候,例如OA系统,经常能遇到将审批单数据导出为word和excel文档的需求 ...

  5. 使用kNN算法改进约会网站配对效果(尺度归一化问题)

    简单匹配:

  6. GIS数据合集:作物、植被数据下载平台整理

      本文对目前主要的作物类型与产量.植被物候与指数数据产品的获取网站加以整理与介绍. 目录 4 植被农业数据 4.1 作物产量数据 4.1.1 SPAM 4.1.2 Aerial Intelligen ...

  7. Vulnhub-kioptix2014靶机getshell及提权

    靶机搭建 点击扫描虚拟机 然后扫描文件夹即可 信息收集 扫描ip nmap扫描得到目标靶机ip nmap -sn 192.168.108.0/24 故 攻击机:192.168.108.130 目标靶机 ...

  8. XYBot:一款功能强大的微信机器人,超多插件等你来玩

    想象一下,拥有一个全能的微信机器人,它能帮你查天气.找新闻,甚至陪你聊天,这一切都不再是梦!XYBot,一款基于docker和pywxdll hook注入技术的微信机器人,让你的微信生活更有趣.更便捷 ...

  9. 傻妞教程——对接QQ机器人go-cqhttp

    原本我懒,用的傻妞QQbot一键安装版,docker的,最近有点问题,索性换了go-cqhttp 安装go-cqhttp: go-cqhttp项目地址:https://github.com/Mrs4s ...

  10. 大数据之路Week08_day06 (Zookeeper初识)

    让我们来回顾一下我们在学习Hadoop中的HDFS的时候,肯定见过下面这样的两幅图: 这副图代表着什么呢?它介绍的是Hadoop集群的高可靠,也就是前面提过的HA,仔细观察一下这副图,我们发现有两个N ...