How to monitor tempdb in MS SQL
Error: tempdb is full due to active_transaction.
select
ss.[host_name],
ss.login_name,
ss.original_login_name,
ss.[status],
R.*
from(
SELECT COALESCE(T1.session_id, T2.session_id) [session_id] ,
T1.request_id ,
COALESCE(T1.database_id, T2.database_id) [database_id],
DB_NAME(COALESCE(T1.database_id, T2.database_id)) as Database_Name,
COALESCE(T1.[Total Allocation User Objects], 0) + T2.[Total Allocation User Objects] [Total Allocation User Objects (MB)] ,
COALESCE(T1.[Net Allocation User Objects], 0) + T2.[Net Allocation User Objects] [Net Allocation User Objects] ,
COALESCE(T1.[Total Allocation Internal Objects], 0) + T2.[Total Allocation Internal Objects] [Total Allocation Internal Objects (MB)] ,
COALESCE(T1.[Net Allocation Internal Objects], 0) + T2.[Net Allocation Internal Objects] [Net Allocation Internal Objects (MB)] ,
COALESCE(T1.[Total Allocation], 0) + T2.[Total Allocation] [Total Allocation (MB)] ,
COALESCE(T1.[Net Allocation], 0) + T2.[Net Allocation] [Net Allocation (MB)] ,
COALESCE(T1.[Query Text], T2.[Query Text]) [Query Text]
FROM (( SELECT TS.session_id,
TS.request_id,
TS.database_id,
CAST(TS.user_objects_alloc_page_count / 128. AS DECIMAL(15,2)) [Total Allocation User Objects] ,
CAST((TS.user_objects_alloc_page_count - TS.user_objects_dealloc_page_count) / 128. AS DECIMAL(15,2)) [Net Allocation User Objects] ,
CAST(TS.internal_objects_alloc_page_count / 128. AS DECIMAL(15,2)) [Total Allocation Internal Objects] ,
CAST((TS.internal_objects_alloc_page_count - TS.internal_objects_dealloc_page_count) / 128. AS DECIMAL(15,2)) [Net Allocation Internal Objects] ,
CAST((TS.user_objects_alloc_page_count + internal_objects_alloc_page_count) / 128. AS DECIMAL(15,2)) [Total Allocation] ,
CAST((TS.user_objects_alloc_page_count + TS.internal_objects_alloc_page_count - TS.internal_objects_dealloc_page_count - TS.user_objects_dealloc_page_count) / 128. AS DECIMAL(15,2)) [Net Allocation] ,
T.text [Query Text]
FROM sys.dm_db_task_space_usage TS
INNER JOIN sys.dm_exec_requests ER ON ER.request_id = TS.request_id AND ER.session_id = TS.session_id
OUTER APPLY sys.dm_exec_sql_text(ER.sql_handle) T
) T1
RIGHT JOIN
( SELECT SS.session_id,
SS.database_id,
CAST(SS.user_objects_alloc_page_count / 128. AS DECIMAL(15,2)) [Total Allocation User Objects] ,
CAST((SS.user_objects_alloc_page_count - SS.user_objects_dealloc_page_count)/ 128. AS DECIMAL(15, 2)) [Net Allocation User Objects] ,
CAST(SS.internal_objects_alloc_page_count / 128. AS DECIMAL(15,2)) [Total Allocation Internal Objects] ,
CAST((SS.internal_objects_alloc_page_count - SS.internal_objects_dealloc_page_count) / 128. AS DECIMAL(15, 2)) [Net Allocation Internal Objects] ,
CAST((SS.user_objects_alloc_page_count + internal_objects_alloc_page_count) / 128. AS DECIMAL(15, 2)) [Total Allocation] ,
CAST((SS.user_objects_alloc_page_count + SS.internal_objects_alloc_page_count - SS.internal_objects_dealloc_page_count - SS.user_objects_dealloc_page_count) / 128. AS DECIMAL(15, 2)) [Net Allocation] ,
T.text [Query Text]
FROM sys.dm_db_session_space_usage SS
LEFT JOIN sys.dm_exec_connections CN ON CN.session_id = SS.session_id
OUTER APPLY sys.dm_exec_sql_text(CN.most_recent_sql_handle) T
) T2 ON T1.session_id = T2.session_id)
) R
left join sys.dm_exec_sessions ss on R.session_id=ss.session_id
order by ss.status, [Total Allocation User Objects (MB)] desc
参考链接:https://www.mssqltips.com/sqlservertip/4356/track-sql-server-tempdb-space-usage/
How to monitor tempdb in MS SQL的更多相关文章
- MS SQL语句优化
MS SQL Server查询优化方法查询速度慢的原因很多,常见如下几种 1.没有索引或者没有用到索引(这是查询慢最常见的问题,是程序设计的缺陷) 2.I/O吞吐量小,形成了瓶颈效应. 3.没有创建计 ...
- 获取MS SQL TABLE列名列表
在MS SQL Server中,想获取表的所有列名,可以使用下面SQL语句: SELECT [COLUMN_NAME] FROM [INFORMATION_SCHEMA].[Columns] WHER ...
- MS SQL SERVER 中的系统表
MS SQL SERVER 中的系统表 序号 名称 说明 备注 1 syscolumns 每个表和视图中的每列在表中占一行,存储过程中的每个参数在表中也占一行. 2 syscomments 包含每 ...
- 【MS SQL】通过执行计划来分析SQL性能
原文:[MS SQL]通过执行计划来分析SQL性能 如何知道一句SQL语句的执行效率呢,只知道下面3种: 1.通过SQL语句执行时磁盘的活动量(IO)信息来分析:SET STATISTICS IO O ...
- MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在
MS SQL SERVER 2008 使用OBJECT_ID判断临时表是否存在 我们在写sql 脚本的时候经常会用到临时表,有时间也需要根据临时表是否存在做一些逻辑处理.还好sql server已经集 ...
- MS SQL数据批量备份还原(适用于MS SQL 2005+)
原文:MS SQL数据批量备份还原(适用于MS SQL 2005+) 我们知道通过Sql代理,可以实现数据库的定时备份功能:当数据库里的数据库很多时,备份一个数据库需要建立对应的定时作业,相对来说比较 ...
- MS SQL JSON类型type
在MS SQL Server 2016,已经支持JSON处理. 执行下面代码,将获取ms sql server对象类型以及其说明: IF OBJECT_ID('tempdb.dbo.#json_typ ...
- MS SQL Server的COALESCE函数
MS SQL Server的COALESCE函数是从一系列表达式中返回第一个NOT NULL的值. 检查[B],[Q],[S],[T],[U]的值: 检查顺序[B]->[Q]->[S]-& ...
- MS SQL server对象类型type
执行下面代码,将获取ms sql server对象类型以及其说明 IF OBJECT_ID('tempdb.dbo.#type') IS NOT NULL DROP TABLE #type CREAT ...
随机推荐
- 【原创】uC/OS II 任务切换原理
今天学习了uC/OS II的任务切换,知道要实现任务的切换,要将原先任务的寄存器压入任务堆栈,再将新任务中任务堆栈的寄存器内容弹出到CPU的寄存器,其中的CS.IP寄存器没有出栈和入栈指令,所以只能引 ...
- python三大神器之pip
pip是一款管理python各类包和库的工具,非常好用.下文介绍常用的一些命令. ● 安装:pip install 库名 也可以指定版本:pip install 库名=版本 ● 卸载:pip unin ...
- Yaml 文件中Condition If- else 判断的问题
在做项目的CI/ CD 时,难免会用到 Travis.CI 和 AppVeyor 以及 CodeCov 来判断测试的覆盖率,今天突然遇到了一个问题,就是我需要在每次做测试的时候判断是否存在一个环境变量 ...
- 翻译wiki(一):Bios boot partition
文章翻译自wiki,水平有限,若有错万请见谅.原文:https://en.wikipedia.org/wiki/BIOS_boot_partition BIOS boot partition是一个分区 ...
- Go Web:自带的ServeMux multiplexer
ServeMux简介 ServeMux扮演的角色是Multiplexer,它用来将将请求根据url路由给已注册的handler.如下图: 上图中为3个路径注册了handler,一个是"/&q ...
- redis的Pub/Sub
redis的Pub/Sub机制类似于广播架构,Subscriber相当于收音机,可以收听多个channel(频道),Publisher(电台)可以在channel中发布信息. 命令介绍 PUBLISH ...
- element UI table 过滤 筛选问题
一.问提描述 使用elementUI table 官方筛选案例,发现筛选不是服务器端筛选,而是浏览器端对每一页进行单独筛选. 如何在服务器端筛选? 二.查询Element UI 官网table组 ...
- mongodb与java整合
mongodb与java整合需要用到mongodb驱动,如果是maven环境,则添加如下倚赖: <dependency> <groupId>org.mongodb</gr ...
- JAVA JVM常见内存参数配置简析
JVM常见内存参数配置简析 常见参数 -Xms .-Xmx.-XX:newSize.-XX:MaxnewSize.-Xmn(-XX:newSize.-XX:MaxnewSize) 简析 1.-Xm ...
- vim打开不同的文件
sp vim -o file1 file2 纵向打开文件 Ctrl+w Ctrl+v vim -O file1 file2 横向打开文件