热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

SQLServer性能瓶颈分析与解决策略

在数据仓库管理中,定时更新程序与查询SQL之间的冲突常常导致性能瓶颈和阻塞问题。为了解决这些问题,通常需要对SQLServer进行详细的性能诊断。常用的诊断工具包括系统动态管理视图(DMVs)和扩展事件(ExtendedEvents),这些工具能够帮助识别和分析性能瓶颈的具体原因,从而采取有效的优化措施。

在数据仓库维护过程中,经常会出现定时更新程序和查询SQL发生冲突而引起阻塞的情况,需要进行SQL Server诊断。

SQL Server诊断一般会用到2个视图:sys.sysprocesses(系统进程表) 和sys.dm_exec_sql_text(系统执行内容表) 。

通过查看当前运行的进程信息可以查看阻塞的情况:

SELECT spid,blocked,DB_NAME(sp.dbid) AS DBName,program_name,waitresource,lastwaittype,sp.loginame,sp.hostname,a.[Text] AS [TextData]
FROM sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A
WHERE spid > 50
ORDER BY blocked DESC, DB_NAME(sp.dbid) ASC, a.[text];

 

其中

spid:SQL Server的会话ID&#xff0c;因spid<&#61;50的为SQL Server本身的系统进程&#xff0c;所以这里取spid>50;
blocked&#xff1a;正在阻塞求情的会话 ID,如果此列为0&#xff0c;则标识请求未被阻塞&#xff1b;
DB_NAME(sp.dbid)&#xff1a;当前正由进程使用的数据库名称;
Program_name&#xff1a;应用程序的名称&#xff0c;连接字符串中配的Application Name&#xff1b;
Loginame&#xff1a;登录名&#xff1b;
Hostname&#xff1a;建立链接的客户端工作站的名称&#xff1b;
Text&#xff1a;当前运行的SQL语句。

当找到阻塞进程后&#xff0c;可以使用如下命令结束该进程&#xff1a;
kill spid

 

铸剑团队签名&#xff1a;

【总监】十二春秋之&#xff0c;3483099&#64;qq.com&#xff1b;

【Master】戈稻不苍&#xff0c;han169&#64;126.com&#xff1b;

【Java开发】雨鸶&#xff0c;343691194&#64;qq.com&#xff1b;思齐骏惠&#xff0c;qiangzhang1227&#64;163.com&#xff1b;小王子&#xff0c;545106057&#64;qq.com&#xff1b;巡山小钻风&#xff0c;840260821&#64;qq.com&#xff1b;

【VS开发】豆点&#xff0c;2268800211&#64;qq.com&#xff1b;

【系统测试】土镜问道&#xff0c;847071279&#64;qq.com&#xff1b;尘子与自由&#xff0c;695187655&#64;qq.com&#xff1b;

【大数据】沙漠绿洲&#xff0c;caozhipan&#64;126.com&#xff1b;张三省&#xff0c;570417591&#64;qq.com&#xff1b;

【网络】夜孤星&#xff0c;11297761&#64;qq.com&#xff1b;

【系统运营】三石头&#xff0c;261453882&#64;qq.com&#xff1b;平凡怪咖&#xff0c;591169003&#64;qq.com&#xff1b;

【容灾备份】秋天的雨&#xff0c;18568921&#64;qq.com&#xff1b;

【安全】保密&#xff0c;你懂的。

原创作者&#xff1a;张三省

著作权归作者所有。商业转载请联系作者获得授权&#xff0c;非商业转载请注明出处。

 

转:https://www.cnblogs.com/zhangleisanshi/p/8024934.html



推荐阅读
  • 本文详细介绍如何利用已搭建的LAMP(Linux、Apache、MySQL、PHP)环境,快速创建一个基于WordPress的内容管理系统(CMS)。WordPress是一款流行的开源博客平台,适用于个人或小型团队使用。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 本文介绍了如何通过 Maven 依赖引入 SQLiteJDBC 和 HikariCP 包,从而在 Java 应用中高效地连接和操作 SQLite 数据库。文章提供了详细的代码示例,并解释了每个步骤的实现细节。 ... [详细]
  • DNN Community 和 Professional 版本的主要差异
    本文详细解析了 DotNetNuke (DNN) 的两种主要版本:Community 和 Professional。通过对比两者的功能和附加组件,帮助用户选择最适合其需求的版本。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 本文详细介绍了如何在Linux系统上安装和配置Smokeping,以实现对网络链路质量的实时监控。通过详细的步骤和必要的依赖包安装,确保用户能够顺利完成部署并优化其网络性能监控。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 本文详细介绍了 Dockerfile 的编写方法及其在网络配置中的应用,涵盖基础指令、镜像构建与发布流程,并深入探讨了 Docker 的默认网络、容器互联及自定义网络的实现。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 如何配置Unturned服务器及其消息设置
    本文详细介绍了Unturned服务器的配置方法和消息设置技巧,帮助用户了解并优化服务器管理。同时,提供了关于云服务资源操作记录、远程登录设置以及文件传输的相关补充信息。 ... [详细]
  • 本文详细介绍了macOS系统的核心组件,包括如何管理其安全特性——系统完整性保护(SIP),并探讨了不同版本的更新亮点。对于使用macOS系统的用户来说,了解这些信息有助于更好地管理和优化系统性能。 ... [详细]
  • Ralph的Kubernetes进阶之旅:集群架构与对象解析
    本文深入探讨了Kubernetes集群的架构和核心对象,详细介绍了Pod、Service、Volume等基本组件,以及更高层次的抽象如Deployment、StatefulSet等,帮助读者全面理解Kubernetes的工作原理。 ... [详细]
  • 深入解析 Spring Security 用户认证机制
    本文将详细介绍 Spring Security 中用户登录认证的核心流程,重点分析 AbstractAuthenticationProcessingFilter 和 AuthenticationManager 的工作原理。通过理解这些组件的实现,读者可以更好地掌握 Spring Security 的认证机制。 ... [详细]
  • 使用C#开发SQL Server存储过程的指南
    本文介绍如何利用C#在SQL Server中创建存储过程,涵盖背景、步骤和应用场景,旨在帮助开发者更好地理解和应用这一技术。 ... [详细]
author-avatar
PHP界的一股清流
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有