sql server 常用运维SQL

ops/2025/1/19 4:08:41/

12.定位SQL查询SQL语句执行时间和IO消耗
SELECT s2.dbid,
(SELECT TOP 1 SUBSTRING(s2.text,statement_start_offset / 2+1 ,
( (CASE WHEN statement_end_offset = -1
THEN (LEN(CONVERT(nvarchar(max),s2.text)) * 2)
ELSE statement_end_offset END) - statement_start_offset) / 2+1)) AS sql_statement,
execution_count, plan_generation_num, last_execution_time,
total_worker_time, last_worker_time, min_worker_time,
max_worker_time, total_physical_reads, last_physical_reads,
min_physical_reads, max_physical_reads, total_logical_writes,
last_logical_writes, min_logical_writes, max_logical_writes
FROM sys.dm_exec_query_stats AS s1
CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS s2
WHERE s2.objectid is null
ORDER BY s1.total_worker_time desc

13.各个数据库CPU消耗情况
WITH DB_CPU_Stats
AS
(SELECT pa.DatabaseID, DB_Name(pa.DatabaseID) AS [Database Name], SUM(qs.total_worker_time/1000) AS [CPU_Time_Ms]
FROM sys.dm_exec_query_stats AS qs WITH (NOLOCK)
CROSS APPLY (SELECT CONVERT(int, value) AS [DatabaseID]
FROM sys.dm_exec_plan_attributes(qs.plan_handle)
WHERE attribute = N’dbid’) AS pa
GROUP BY DatabaseID)
SELECT ROW_NUMBER() OVER(ORDER BY [CPU_Time_Ms] DESC) AS [CPU Rank],
[Database Name], [CPU_Time_Ms] AS [CPU Time (ms)],
CAST([CPU_Time_Ms] * 1.0 / SUM([CPU_Time_Ms]) OVER() * 100.0 AS DECIMAL(5, 2)) AS [CPU Percent]
FROM DB_CPU_Stats
WHERE DatabaseID <> 32767 – ResourceDB
ORDER BY [CPU Rank] OPTION (RECOMPILE);

14.查询CPU占用最高的SQL语句
SELECT TOP 10
total_worker_time/execution_count AS avg_cpu_cost, plan_handle,
execution_count,
(SELECT SUBSTRING(text, statement_start_offset/2 + 1,
(CASE WHEN statement_end_offset = -1
THEN LEN(CONVERT(nvarchar(max), text)) * 2
ELSE statement_end_offset
END - statement_start_offset)/2)
FROM sys.dm_exec_sql_text(sql_handle)) AS query_text
FROM sys.dm_exec_query_stats
ORDER BY [avg_cpu_cost] DESC

15.查看当前占用内存
IF CAST(SUBSTRING(@@VERSION,22,4) AS INT)<2008
select cast(cntr_value/(1024.0) as DECIMAL(12,1)) AS SQLServerMemoryMB
from master.sys.sysperfinfo AS s
where counter_name=‘Total Server Memory (KB)’
ELSE
SELECT CAST(physical_memory_in_use_kb/1024.0 AS DECIMAL(12,1)) AS SQLServerMemoryMB
FROM sys.dm_os_process_memory

16.查看sqlserver有效期
RECONFIGURE
GO
DECLARE @daysleft int
DECLARE @instancename sysname
SELECT @instancename = CONVERT(sysname, SERVERPROPERTY(‘instancename’))
EXEC @daysleft = xp_qv ‘2715127595’, @instancename
SELECT @daysleft ‘剩余使用天数’
GO
–例子:
RECONFIGURE
GO
DECLARE @daysleft int
DECLARE @instancename sysname
SELECT @instancename = CONVERT(sysname, SERVERPROPERTY(‘MSSQLSERVER’))
EXEC @daysleft = xp_qv ‘2715127595’, @instancename
SELECT @daysleft ‘剩余使用天数’
GO
剩余天数为0表示还未过期

  1. 检查数据库启动时间
    select convert(varchar(30),login_time,120) from master…sysprocesses where spid=1

sqlserver查看实例级别的信息,使用SERVERPROPERTY函数

select SERVERPROPERTY (‘propertyname’)

查看实例级别的某个参数XX的配置

select * from sys.configurations where name=‘XX’

更改实例级别的某个参数XX的值

sp_configure ‘XX’,‘0’
RECONFIGURE WITH OVERRIDE

sp_configure显示或更改当前服务器的全局配置设置。
RECONFIGURE表示SQL Server不用重新启动就立即生效

使用sp_configure更改设置时,请使用RECONFIGURE语句使更改立即生效,否则更改将在SQL Server重新启动后生效。RECONFIGURE后面加WITH OVERRIDE表示不管这个值是不是符合要求都会生效,比如recovery interval的范围值是10–60对应sys.configurations.minimum是10、sys.configurations.maximum是60,如果sp_configure ‘recovery interval’, 75设置为75,超过了这个10–60规范,但是要让75生效,则必须加上WITH OVERRIDE

sqlserver没有系统表可以查询所有数据库下面对象

如下只能在当前数据库下面查

select * from sys.all_objects --查询当前数据库的所有架构范围的对象

select * from sys.sysobjects --查询当前数据库的所有对象

–sys.all_objects、sys.sysobjects这种的视图,在每个数据库的系统视图下面都有

select * from sys.databases --在当前数据库下可以查询到所有数据库信息,包含是否on状态

select * from sys.sysdatabases --在当前数据库下可以查询到所有数据库信息,不包含是否on状态,这个系统视图会在后续的版本中删除

–sys.databases、sys.sysdatabases这种的视图,在每个数据库的系统视图下面都有

sys.processes --没有这个视图

select * from sys.sysprocesses --在当前数据库下可以查询所有正在SQL Server 实例上运行的进程的相关信息,也就是所有数据库上的线程,这个系统视图会在后续的版本中删除

全局系统视图、单个数据库系统视图

sys.database_files --每个存


http://www.ppmy.cn/ops/151270.html

相关文章

初识JVM HotSopt 的发展历程

目录 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 各大 JVM look 看一下虚拟机 HotSopt 的发展历程 总结 导学 目前企业对程序员的基本要求 面向的对象 实战 学习目标 JVM 是什么 JVM 的三大核心功能 即时编译 主要是…

什么情况下适合使用静态路由?什么情况下适合使用动态路由?_什么时候用静态路由什么时候用动态

2 静态路由 静态路由是由网络管理员根据网络拓扑&#xff0c;使用命令在路由器上配置的路由&#xff0c;这些静态路由信息指导报文发送&#xff0c;静态路由方式也无需路由器进行计算&#xff0c;但它完全依赖于网络管理员的手动配置。 补充一下&#xff0c;默认路由是一种特…

LeetCode100之搜索二维矩阵(46)--Java

1.问题描述 给你一个满足下述两条属性的 m x n 整数矩阵&#xff1a; 每行中的整数从左到右按非严格递增顺序排列。每行的第一个整数大于前一行的最后一个整数。 给你一个整数 target &#xff0c;如果 target 在矩阵中&#xff0c;返回 true &#xff1b;否则&#xff0c;返回…

向harbor中上传镜像(向harbor上传image)

向 Harbor 中上传镜像通常分为以下几个步骤&#xff1a; 1、登录 Harbor 2、构建镜像 3、标记镜像 4、推送镜像到 Harbor 仓库 1、登录 Harbor 首先&#xff0c;确保你已经能够访问 Harbor&#xff0c;并且已经注册了账户。如果还没有 Harbor 账户&#xff0c;你需要先注册一…

1.6 阅读k8s源码的准备工作

准备工作 找个合适的ide 比如goland 下载k8s源码 项目地址 https://github.com/kubernetes/kubernetes可以git下载&#xff0c;也可以下载zip包&#xff0c;还可以go get 下载 git clone https://github.com/kubernetes/kubernetes.git 本教程基于k8s 1.21 版本 k8s组件代…

Java语言的软件工程

Java语言的软件工程 引言 在当今信息技术飞速发展的时代&#xff0c;软件工程作为一门应用广泛的学科&#xff0c;承担着开发高质量软件系统的重要责任。Java语言以其跨平台特性、安全性和强大的库支持&#xff0c;已经成为软件工程领域中最流行的编程语言之一。本文将深入探…

装饰器模式详解(附代码案例和源码分析)

目录 装饰器模式的本质 装饰器模式和继承结构的对比 源码中IO流的继承结构 具体装饰器类 装饰器的组合应用 装饰器链的特点 代码案例 定义coffee类型 coffee的实现类 装饰器抽象类 装饰器 - 季节限定 装饰器——加牛奶 装饰器——加糖 生成咖啡的简单工厂 咖…

H3CNE-11-生成树协议STP

STP&#xff1a;Spanning Tree Protocol&#xff0c;可以在提高可靠性的同时又能避免环路带来的各种问题。 一句话总结STP的作用&#xff1a;防止交换机环路。 为了提高网络的可靠性&#xff0c;交换网络中通常会使用冗余链路&#xff0c;然而冗余链路会给交换网络带来环路风险…