SQL SERVER日常运维巡检系列之八——性能

本文介绍如何建立性能基线并利用其进行数据库性能巡检。通过对比巡检数据与基线,及时发现性能瓶颈,重点关注慢查询、系统等待等问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

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

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

  • 不知道巡检哪些东西
  • 不知道怎么样便捷体检
  • 机器太多体检麻烦
  • 生成报告困难,无法直观呈现结果

 

  性能是系统好坏的重要指标之一,而性能问题可能是因为某一个小点而引起(如参数配置、作业配置、结构设计、软硬件环境等)。前面七篇文章从不同的方面对系统进行了巡检,本篇将介绍系列巡检中最重要的一项(性能)。

性能基线

  性能巡检的指标非常多,情况变化也很大,所以对自己的系统应该建立起一套完整的性能评价模型,何为性能评价模型,就是当系统进入一个平稳期,经过了优化,系统性能已经达到了一个稳定值,那么我们可以用这个稳定的项目作为后期巡检,及功能上线,结构变更等操作性能对比的基线。

  在【体检项目】页我们可以使用一个比较稳定的体检项目的历史版本作为性能基线,为了区分其他项目可以重命名为”性能基线“。

  

  

基于性能基线对比

 总体指标

  在【概览】页我们可以从整体查看系统的性能现状,主要从【查询语句-执行时间】、【会话-等待类型】、【检查项】等,与基线进行对比。查看巡检中的指标是否与基线指标有较大的差异。

  例:当巡检时【查询语句-执行时间】中各个时间段的慢语句数量明显高于基线,那么可以说明系统中的语句可能有变慢的情况。CPU、内存、IO等系统指标压力升高,说明你系统的压力变大,变大的原因可能因为有新增的不优化语句或硬件资源出现问题。

  注:基线与巡检的收集时间应保证相同或小幅差异。如果差异很大,可能不具有说明性。

   

 

具体指标

  计数器

  • 系统计数器
  • 数据库计数器

  

  查询语句

  在巡检中,我们可以主要关注:

   

  • 慢语句数量

  

  • 执行次数top 10
  • 持续时间top 10
  • CPU消耗top 10
  • 读次数 top 10
  • 写次数top 10
  • 影响行数top 10

  

 

 

 系统等待与阻塞

  在巡检中,我们可以主要关注:

  • 等待的类型及数量分布

  

  • 等待时间分布

  

 

  • 等待次数top 10
  • 等待时间top 10
  • CPU时间top 10
  • 逻辑读次数 top 10
  • 物理读次数top 10
  • 物理写top 10

  

 

 其他指标

  数据库的性能巡检指标很多,可以根据自己系统的情况选择,具体指标及优化方式请参见:性能诊断系列

 

总结

  前面的一些巡检项及配置项,在管理比较规范的系统下,一般并不会出现什么问题,而性能不同,这是一个受很多因素影响,并且比较容易产生问题的项。同时性能对系统的总要程度是不言而喻的,做好前面的巡检也是性能稳定的保证。

### 解决方案 当遇到本地服务中未找到 `MSSQLServer` 的问题时,可能的原因包括但不限于以下几种:SQL Server 文件损坏、登录凭据失效、服务注册表项丢失或配置错误。以下是针对该问题的具体分析和解决方法。 #### 1. **确认 SQL Server 是否已正确安装** 如果在 Windows 服务管理器 (`services.msc`) 中找不到 `MSSQLSERVER` 服务,则可能是 SQL Server 安装过程中出现问题或者被意外卸载。可以通过重新安装 SQL Server 来修复此问题[^1]。 ```bash # 下载并运行最新的 SQL Server 安装包 msiexec /i "SQLEXPR_x64_ENU.exe" ``` #### 2. **检查服务是否存在** 通过命令行工具验证 `MSSQLSERVER` 服务是否存在于系统中: ```powershell Get-Service | Where-Object { $_.Name -eq 'MSSQLSERVER' } ``` 如果没有返回任何结果,则说明服务确实不存在。此时可以尝试手动创建服务: ```cmd mysqld --install MSSQLSERVER ``` 注意:上述命令仅适用于 MySQL;对于 SQL Server 需要使用其专用的安装脚本或工具来恢复服务[^4]。 #### 3. **修复受损的服务条目** 如果是因为非正常断电或其他异常操作导致数据库文件损坏从而引发错误码 3414,建议执行以下步骤进行数据恢复: - 使用备份还原实例; - 或者启用紧急模式启动选项以访问受影响的数据文件: ```ini # 修改 sqlservr.exe 启动参数,在 my.ini 或 registry 中添加以下内容 -f -m ``` > 注:以上措施需谨慎实施以免进一步损害现有资料结构。 #### 4. **更新/重置管理员密码** 假如问题是源于更改了操作系统级别的账户凭证却忘记同步至关联的应用程序设置里头的话——就像案例描述那样提到修改过测试机器上的默认用户名字及其对应的新密钥组合之后碰到了同样的状况即无法成功激活目标进程对象(`error code:1069`)—那么就应该考虑调整回原来的设定或者是赋予新的认证方式给定相应的权限级别以便让整个流程恢复正常运转起来[^2]. 具体做法如下所示: - 打开注册编辑器定位到路径:`HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSSQLSERVER` - 查找名为"ObjectName"字符串键值对将其更改为NT AUTHORITY\NetworkService或者其他具有适当权利的身份标识符. 最后记得重启计算机使变更生效. --- ### 总结 综上所述, 若要彻底根除此类现象的发生概率可以从以下几个方面入手加以防范: - 定期做好重要业务系统的镜像快照保存工作; - 对关键基础设施组件实行严格的变更控制策略; - 加强日常运维巡检频率及时发现潜在隐患.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值