首页 > 数据库 >SQLServer 实用语句

SQLServer 实用语句

时间:2023-05-30 14:44:05浏览次数:47  
标签:语句 qs text req SQLServer elapsed 实用 time total

查询过去执行的查询慢

SELECT t.text,
     (qs.total_elapsed_time/1000) / qs.execution_count AS avg_elapsed_time,
     (qs.total_worker_time/1000) / qs.execution_count AS avg_cpu_time,
     ((qs.total_elapsed_time/1000) / qs.execution_count ) - ((qs.total_worker_time/1000) / qs.execution_count) AS avg_wait_time,
     qs.total_logical_reads / qs.execution_count AS avg_logical_reads,
     qs.total_logical_writes / qs.execution_count AS avg_writes,
     (qs.total_elapsed_time/1000) AS cumulative_elapsed_time_all_executions
FROM sys.dm_exec_query_stats qs
     CROSS apply sys.Dm_exec_sql_text (sql_handle) t
-- WHERE t.text like '<Your Query>%'
-- Replace <Your Query> with your query or the beginning part of your query. The special chars like '[','_','%','^' in the query should be escaped.
ORDER BY (qs.total_elapsed_time / qs.execution_count) DES

查询当前正在执行的语句慢

SELECT     req.session_id
    , req.total_elapsed_time AS duration_ms
    , req.cpu_time AS cpu_time_ms
    , req.total_elapsed_time - req.cpu_time AS wait_time
    , req.logical_reads
    , SUBSTRING (REPLACE (REPLACE (SUBSTRING (ST.text, (req.statement_start_offset/2) + 1, 
       ((CASE statement_end_offset
           WHEN -1
           THEN DATALENGTH(ST.text)  
           ELSE req.statement_end_offset
         END - req.statement_start_offset)/2) + 1) , CHAR(10), ' '), CHAR(13), ' '), 
      1, 512)  AS statement_text  
FROM sys.dm_exec_requests AS req
    CROSS APPLY sys.dm_exec_sql_text(req.sql_handle) AS ST
ORDER BY total_elapsed_time DESC;

触发器

drop trigger companyDelete_trigger; --删除触发器
select name from sysobjects where xtype='TR'; --所有触发器

create trigger companyDelete_trigger on T_ADMIN for update
as if update (FCOMPANYID)
begin
declare @cou int
select @cou=count(*) from T_ADMIN where FCOMPANYID is null;
if (@cou>0) RAISERROR('所属公司不能为空', 16, 1)
end ; -- 添加触发器

CREATE TRIGGER TRG_Delete
ON T_Emp AFTER DELETE
AS
    BEGIN
         RAISERROR('数据不能删', 16, 1)
    END ;
    
CREATE TRIGGER TRG_AAA ON t_Relation AFTER update
AS
    BEGIN
    declare @fid varchar(44);
         select @fid=(select fid from inserted)
    if('RIfIPiwwTOami8mzo3VSyikoiSk=' = @fid)  RAISERROR(' FID: %s For Update ', 16, 1,@fid)
    END ;

查询阻塞的进程

SELECT   [session_id],
  [blocking_session_id] AS '正在阻塞其他会话的会话ID',
  DB_NAME([database_id]) AS '数据库名称',
  [request_id],  [cpu_time],
  [start_time] AS '开始时间',
  [status] AS '状态',
  [command] AS '命令',
  dest.[text] AS 'sql语句',
  [reads] AS '物理读次数',
  [writes] AS '写次数',
  [logical_reads] AS '逻辑读次数',
  [row_count] AS '返回结果行数',
  [wait_type] AS '等待资源类型',
  [wait_time] AS '等待时间',
  [wait_resource] AS '等待的资源'
  FROM sys.[dm_exec_requests] AS der  CROSS APPLY
  sys.[dm_exec_sql_text](der.[sql_handle]) AS dest

查询被锁的表

select request_session_id 锁表进程,OBJECT_NAME(resource_associated_entity_id) 被锁表名 from sys.dm_tran_locks where resource_type='OBJECT'

 

标签:语句,qs,text,req,SQLServer,elapsed,实用,time,total
From: https://www.cnblogs.com/oioele/p/17443190.html

相关文章

  • SQL语句
    SQL语句分类:DQL:数据查询语言,用于对数据进行查询DML:数据操作语言,对数据进行增加、修改、删除TPL:事务处理语言,对事务进行处理DDL:数据定义语言,进行数据库、表的管理等DCL:数据控制语言,进行授权与权限回收CCL:指针控制语言,通过控制指针完成表的操作数据库的增删改查是必须要掌......
  • Javaweb中在SQL语句中使用未知数进行多表查询
    这个问题主要是匹配好引号和单引号即可。如果是varchar型,那么变量要带单引号('),如果是int型就不用带。同时要注意用+号进行String的拼接。示例:publicList<Student>huizong_bujige(Stringkemu1){List<Student>list=newArrayList<>();Connectionconn......
  • 学Java必备实用截图工具—Snipaste
    截图功能已经成了现在学习及工作中的必备需求,分享给大家一款好用而且还免费的截图神器——SnipasteSnipaste功能非常强大,不需要安装,解压即可使用。这篇文章详细介绍一下Snipaste的下载安装及使用。这也是入门学习Java最实用的截图工具,也可直接观看视频讲解,b站上动力节点老杜最......
  • 转:SqlServer锁机制与实践
    转自:https://www.cnblogs.com/wangweitr/p/7158023.html在如今这个云计算,大数据,移动互联网大行其道的时代,各种NoSQL数据库MongoDb、redis、HBase等使用的越来越广泛,大有替代关系型数据库的趋势。但是关系型数据库真的已经落伍了吗?答案是否定的。非关系型数据库不支持ACID属性,不支......
  • Unity的AssetPostprocessor之Model:深入解析与实用案例 1
    UnityAssetPostprocessor模型相关函数详解在Unity中,AssetPostprocessor是一个非常有用的工具,它可以在导入资源时自动执行一些操作。在本文中,我们将重点介绍AssetPostprocessor中与模型相关的函数,并提供多个使用例子。OnPostprocessModelOnPostprocessModel是AssetPostprocessor......
  • go语言if、for、switch语句
    单分支ifcondition{代码块}if5>2{fmt.Println("5greaterthan2")}Go语言中,花括号一定要跟着if、for、func等行的最后,否则语法出错。condition必须是一个bool类型,在Go中,不能使用其他类型等效为布尔值。if1{}是错误的语句块中可以写其他代码如果con......
  • Flask013_ for 循环语句
    调用[email protected]('/for')2deffor_statement():3books=[{4'title':'三国演义',5'author':'罗贯中',6'price':1007},8{9'ti......
  • SqlServer中的锁
    共享锁(SharedLock):表示一个事务正在读取一行数据,其他事务也可以读取同一行数据,但不能进行写操作。也称为"S锁"或"读锁"。--在事务中获取共享锁BEGINTRANSACTION;SELECT*FROMtable_nameWITH(TABLOCKX,HOLDLOCK)WHEREcolumn_name='value';--其他事务可以......
  • mysql、sqlserver、oracle分页,java分页统一接口实现
    定义:pageStart起始页,pageEnd终止页,pageSize页面容量oracle分页:rownum numfrom(实际传的SQL)where rownum<=pageEnd)wherenum>=pageStartsqlServer分页:           select*from(select top 页面容量from(select top字段Adesc)astemptable2orderb......
  • Flask013_ if 判断语句
    调用[email protected]('/if')2defif_statement():3age=184returnrender_template('if.html',age=age)if.html1<!DOCTYPEhtml>2<htmllang="en">3<head>4<metacharset="UTF-8......