首页 > 数据库 >sqlserver调优的相关查询

sqlserver调优的相关查询

时间:2024-08-28 11:26:12浏览次数:7  
标签:dm SQL sqlserver 查询 sys 调优 time Server

SQL Server 系统卡顿可能由多种原因引起,如硬件资源不足、查询性能问题、锁争用、并发连接过多等。以下是一些排查和优化步骤:

1. 检查硬件资源

CPU 使用率:检查 SQL Server 的 CPU 使用情况,特别是是否有单个查询占用了过多的 CPU 资源。使用 Task ManagerPerformance Monitor 查看整体 CPU 使用情况。在 SQL Server 中可以使用以下查询查看 CPU 使用较高的会话:

SELECT TOP 10
    session_id,
    cpu_time,
    total_elapsed_time,
    [text]
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
ORDER BY cpu_time DESC;

内存使用情况:确保 SQL Server 分配的内存合适,避免因内存不足导致的频繁磁盘交换。使用 sys.dm_os_sys_memory 检查内存情况:

SELECT
    physical_memory_in_use_kb / 1024 AS SQLServerMemory_MB,
    available_physical_memory_kb / 1024 AS AvailableMemory_MB,
    total_page_file_kb / 1024 AS PageFile_MB
FROM sys.dm_os_sys_memory;

2. 分析慢查询

查询执行计划:查找执行时间长、资源消耗大的查询,分析其执行计划,查看是否有索引缺失、表扫描等问题。

使用以下查询查找最近慢查询:

SELECT TOP 10
    creation_time,
    last_execution_time,
    total_logical_reads,
    total_logical_writes,
    execution_count,
    total_worker_time / execution_count / 1000 AS avg_cpu_time_ms,
    total_elapsed_time / execution_count / 1000 AS avg_elapsed_time_ms,
    [text]
FROM sys.dm_exec_query_stats
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
ORDER BY total_logical_reads DESC;

3. 检查锁和阻塞

锁争用:当多个会话同时访问相同资源时可能会发生锁争用,导致系统卡顿。

使用以下查询查看当前的锁和阻塞情况:

SELECT
    blocking_session_id,
    session_id,
    wait_type,
    wait_time,
    wait_resource,
    [text]
FROM sys.dm_exec_requests
CROSS APPLY sys.dm_exec_sql_text(sql_handle)
WHERE blocking_session_id <> 0;

4. 监控并发连接数

确保并发连接数在 SQL Server 能承受的范围内。

使用以下查询查看当前的连接数:

SELECT
    COUNT(*) AS ConnectionCount,
    DB_NAME(dbid) AS DatabaseName
FROM sys.sysprocesses
GROUP BY DB_NAME(dbid);

5. 日志和事件分析

  • SQL Server 日志:查看 SQL Server 日志,查找可能的错误或警告信息。
  • SQL Server Profiler:使用 Profiler 捕获实时查询执行情况,找出导致卡顿的原因。

 

标签:dm,SQL,sqlserver,查询,sys,调优,time,Server
From: https://www.cnblogs.com/net/p/18384297

相关文章

  • ES高级查询语法
    ES高级查询语法1.match_all1.1返回源数据_source1.2返回指定条数size1.3分页查询from&size1.4指定字段排序sort2.术语级别查询2.1termquery术语查询2.2termquery多术语查询2.3existsquery2.4idsquery2.5rangequery范围查询2.5prefixquery前缀查询......
  • 推荐一款开源一站式SQL审核查询平台!功能强大、安全可靠!
    1、前言在当今这个数据驱动的时代,数据库作为企业核心信息资产的载体,其重要性不言而喻。随着企业业务规模的不断扩大,数据库的数量和种类也日益增多,这对数据库的管理与运维工作提出了前所未有的挑战。在这样的背景下,一款高效、易用的数据库管理工具显得尤为重要。Archery,作为一款开......
  • 第五章 表记录的查询
    1、单表记录查询(查询字段名、表达式、函数、常量)(1)查询所有的列select对列进行查询时,‘*’表示表中所有的列(2)查询指定的列from后面跟表名,表示指定该表中的列(3)查询计算的值NOW()函数返回当前日期和时间值,YEAR()函数返回指定日期对应的年份 前面的等号是表示判断等号两......
  • 免费【2024】springboot 基于Bs模式的城市公交查询系统的设计与实现
    博主介绍:✌CSDN新星计划导师、Java领域优质创作者、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行前辈交流✌技术范围:SpringBoot、Vue、SSM、HTML、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数......
  • sqlserver基础
    说明:此次笔记针对sqlserver2019版本启停右击服务名称,可选择停服/起服/重启服务sqlserver(MSSQLSERVER)--开启代理--开启sqlserver网络配置--mssqlserver的协议--TCP/IP--开启SQLNativeClient11.0配置--客户端协议--TCP/IP--开启客户端SQLServerManag......
  • 数据库系统 第26节 数据库调优
    数据库调优是一个涉及多个方面的复杂过程,旨在提高数据库的性能和响应速度。以下是一些常见的数据库调优策略:索引调优:选择合适的索引类型:根据查询需求选择合适的索引类型,如B-tree、Hash、GiST等。确定索引列:分析查询语句,确定哪些列经常作为查询条件,这些列是索引的好候选。......
  • 数据库系统 第26节 数据库调优 案例分析
    数据库调优通常不需要修改源代码,因为它主要涉及数据库配置、查询优化和硬件调整等方面。然而,源代码中的某些实践可以显著影响数据库性能。以下是一些常见的源代码实践,这些实践可以与数据库调优相结合:参数化查询:避免SQL注入并提高查询效率,使用参数化查询代替字符串拼接查......
  • ETL数据集成丨实现SQLServer数据库的高效实时数据同步
    SQLServer,作为一款功能强大的关系型数据库管理系统(RDBMS),在企业级应用中占据着举足轻重的地位。它不仅提供了可靠的数据存储与管理能力,还集成了高级数据分析、报表服务、集成服务以及商业智能等功能,为复杂业务场景提供了全面的解决方案。SqlServer核心特性高性能与高可用性:SQL......
  • 202009-1 称检测点查询 csp c++组
    a数组记录距离平方值,其最大为2000的平方,不超int。b数组记录3个距离最小的坐标。ans记录下标。每次选出一个坐标后其距离置为最大值。include<bits/stdc++.h>typedeflonglongll;usingnamespacestd;intmain(){intn,x,y,x1,y1,j,minx,b[3],cnt=0,i,ans;inta[210......
  • Linux系统性能调优详细讲解和案例示范
    Linux系统以其稳定性和高效性广受欢迎,但在实际使用过程中,随着负载的增加,性能问题也不可避免地出现。本文将深入探讨Linux系统性能调优的核心概念,介绍一些常用的性能定位命令,并结合实际案例详细说明如何解决常见的性能问题。一、性能调优概述在Linux系统中,性能调优是确保......