Sql Server Cpu 100% 的情况并不太常见,一般引起 Sql Server 产生性能问题的,都是 阻塞、连接数、IO 磁盘等。所以,一般Sql Server 的使用率都是比较低的。但是,在有些情况下,还是会出现Cpu 100%的情况的。
Sql Server 在做哪些操作的时候,会比较集中使用 CPU 资源呢?常见的主要如下:
常见的原因:
1. 编译和重编译
编译是 Sql Server 为指令生成执行计划的过程。Sql Server 要分析指令要做的事情,分析它所要访问的表格结构,也就是生成执行计划的过程。这个过程主要是在做各种计算,所以CPU 使用比较集中的地方。
执行计划生成后会被缓存在 内存中,以便重用。但是不是所有的都可以 被重用。在很多时候,由于数据量发生了变化,或者数据结构发生了变化,同样一句话执行,就要重编译。
2. 排序(sort) 和 聚合计算(aggregation)
在查询的时候,经常会做 order by、distinct 这样的操作,也会做 avg、sum、max、min 这样的聚合计算,在数据已经被加载到内存后,就要使用CPU把这些计算做完。所以这些操作的语句CPU 使用量会多一些。
3. 表格连接(Join)操作
当语句需要两张表做连接的时候,SQL Server 常常会选择 Nested Loop 或 Hash 算法。算法的完成要运行 CPU,所以 join 有时候也会带来 CPU 使用比较集中的地方。
4. Count(*) 语句执行的过于频繁
特别是对大表 Count(*) ,因为 Count(*) 后面如果没有条件,或者条件用不上索引,都会引起 全表扫描的,也会引起 CPU 的大量运算
在 SQL SERVER 这里,和 CPU 有关的设置却很有限,主要在 sp_configure 下,常见的设置有 Priority Boost 和 Lightweight Pooling
而对于 执行计划的观察,利用 sys.dm_exec_cached_plans 视图 会比较方便直观的观察,是很有的。
解决办法:
1. 紧急处理时,可以重启Sql Server 的服务,当然,如果 DB 是在线的 DB ,请谨慎此操作
2. 利用 Sql Server Profiler 来抓去语句,找出耗性能的SQL 语句,优化点。可以说,Sql 语句就好比 Sql server 的性能之匙,80 % 以上的 SQL SERVER 性能问题都是 SQL 语句引起的
3. 根据 累计 使用 CPU 资源最多的语句 和 最经常 需要编辑的存储过程 来优化 语句 和存储过程
--使用DMV来分析SQL Server启动以来累计使用CPU资源最多的语句。例如下面的语句就可以列出前50名。
select
c.last_execution_time,c.execution_count,c.total_logical_reads,c.total_logical_writes,c.total_elapsed_time,c.last_elapsed_time,
q.[text]
from
(select top 50 qs.*
from sys.dm_exec_query_stats qs
order by qs.total_worker_time desc) as c
cross apply sys.dm_exec_sql_text(plan_handle) as q
order by c.total_worker_time desc
go
--我们也可以找到最经常做重编译的存储过程。
select top 25 sql_text.text, sql_handle, plan_generation_num, execution_count,
dbid, objectid
from sys.dm_exec_query_stats a
cross apply sys.dm_exec_sql_text(sql_handle) as sql_text
where plan_generation_num >1
order by plan_generation_num desc
go
分享到:
相关推荐
【赛迪网-IT技术报道】SQL Server数据库查询速度慢的原因有很多,常见的有以下几种: 1、没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2、I/O吞吐量小,形成了瓶颈效应。 3、没有...
### SQL Server 性能监视与优化 #### 一、性能监视和优化的重要性 在现代企业的IT基础设施中,数据库系统的性能直接影响着业务效率和服务质量。Microsoft SQL Server 作为一款广泛使用的数据库管理系统,在各种...
应用负载高是 SQL Server CPU 使用率高的常见原因之一。当应用程序发送大量查询请求时,SQL Server 需要消耗更多的 CPU 资源来处理这些请求,导致 CPU 使用率高。 3. 查询语句的读写高 查询语句的读写高也是 SQL ...
在SQL Server性能优化中,使用CPU计数器是至关重要的工具,可以帮助我们识别和解决可能导致系统瓶颈的问题。本文主要探讨了几个关键的CPU资源消耗点,以及如何通过监控和调整来提升SQL Server的性能。 首先,上下文...
在Oracle环境中,常用的SQL优化工具包括Oracle SQL Developer、Toad for Oracle、SQL Server Management Studio (尽管它是针对SQL Server的)等。这些工具不仅提供了上述功能,还专门针对Oracle数据库的特性进行了...
【SQLServer数据库性能优化】 数据库性能优化是提升系统效率的关键环节,尤其是在SQL Server这样的大型企业级数据库管理系统中。本文主要探讨了如何从数据库设计和硬件系统两个层面来优化SQL Server的性能。 首先...
### SQL Server 2005 常见性能排错 #### 简介与目标 SQL Server 2005 是一款强大的企业级数据库管理系统,但即使是再强大的平台也难免遇到性能问题。这些问题可能源自多种因素,如不良的设计、不当的配置或是硬件...
CPU是SQL Server性能的重要组件,了解CPU的使用情况可以帮助我们更好地优化SQL Server的性能。以下是一些重要的CPU性能监控指标: * CPU使用率:CPU使用率是SQL Server的CPU使用情况,了解CPU使用率可以帮助我们...
在SQL Server性能优化领域,有许多关键点和技术可以显著提升数据库系统的效率。...文件"sql server性能优化.doc"和"SQL SERVER中一些常见性能问题的总结.htm"可能包含了更详细的信息和实例,建议进一步查阅以加深理解。
### SqlServer数据库性能优化详解 #### 一、性能优化的重要性 在现代企业的信息化建设中,数据库作为信息系统的核心组件,其性能直接影响着应用系统的整体表现。性能优化的目标是通过减少网络流量、磁盘I/O操作...
本文将围绕SQL Server的大批量数据处理及优化这一主题展开讨论,旨在为读者提供一系列实用的技巧和策略。 #### 二、查询速度慢的常见原因 1. **缺少索引或未使用索引**:这是导致查询速度慢的最常见原因之一。在...
在本压缩包文件"MICROSOFT_SQL_SERVER_7_性能优化(下)"中,主要探讨的是关于Microsoft SQL Server 7的性能调优技术。SQL Server 7是微软推出的一个重要的关系型数据库管理系统,虽然现在已经较为老旧,但其基础...
提及的"msft042806vxpm.wmv"文件可能是微软的网络广播录像,其中可能包含专家讲解的具体内容,涵盖了SQL Server 2005 Express的实际应用案例、性能优化技巧以及常见问题的解决方案。 总的来说,通过"SQL Server ...
《SQLServer数据库优化详解》 SQLServer数据库优化是提升系统性能的关键步骤,尤其在处理大量数据和复杂查询时显得尤为重要。以下将详细阐述优化数据库的五十种方法,以解决查询速度慢的问题。 首先,了解查询速度...
3. **优化资源分配**:确保 SQL Server 资源(如内存、CPU 和磁盘空间)充足,以减少资源竞争的可能性。 4. **检查配置**:确认 SQL Server 的配置正确无误,例如设置合理的锁超时时间等。 #### 三、错误 1802 解析...
创建XX应用数据库及初步优化章节强调了对SQL Server实例的内存进行优化,以及如何创建并优化特定应用数据库。优化实例的内存是确保数据库高效运行的关键,而创建及优化数据库则是为了提高数据库应用的性能。此外,...
### SQL Server 的大批量数据处理及数据库优化策略 #### 一、引言 在现代企业的数据密集型应用中,SQL Server 数据库作为重要的数据管理工具,其性能优化至关重要。特别是在处理大量数据时,如何有效提升查询速度...
本文将深入探讨挂起问题的成因,并介绍如何使用“SQLserver挂起小工具”——SQLup.exe来有效解决这一问题。 挂起问题通常是由于多种原因造成的,包括但不限于: 1. **资源不足**:安装过程中可能由于系统内存、CPU...