查看SQL SERVER中某个查询用了多少TempDB空间
类别:数据库 浏览量:291
时间:2016-6-26 查看SQL SERVER中某个查询用了多少TempDB空间
查看SQL SERVER中某个查询用了多少TempDB空间一、TempDB系统数据库的理解
1、tempdb是SQL Server的系统数据库一直都是SQL Server的重要组成部分,用来存储临时对象。应用程序与数据库都可以使用tempdb作为临时的数据存储区。一个实例的所有用户都共享一个Tempdb,当多个应用程序的数据库部署在同一台服务器上的时候,应用程序共享tempdb,如果开发人员不注意对Tempdb的使用就会造成这些数据库相互影响从而影响应用程序。
2、tempdb全局存储内部对象,用户对象,临时表,临时对象,以及SQL Server操作创建的存储过程。每个数据库实例只有一个tempdb,所以可能存在性能以及磁盘空间瓶颈。各种形式的可用空间及过度的DDL/DML操作都会导致tempdb负载过重。这会导致运行在服务器上不相干程序运行缓慢或者运行失败。
3、在SQL Server中,TempDB主要负责
(1)、内部使用(排序、hash join、work table等)
一些比较复杂的查询中由于涉及到了大量的并行、排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQL Server预估需要多少内存,在具体的执行过程中,如果授予的内存不足,则需要将多出来的部分由TempDB处理
(2)、外部使用(临时表,表变量等)
(3)、行版本控制(乐观并发控制)
二、查看SQL SERVER中某个查询用了多少TempDB空间
DECLARE @read BIGINT,
@write BIGINT
;
SELECT @read = SUM(num_of_bytes_read),
@write = SUM(num_of_bytes_written)
FROM tempdb.sys.database_files AS DBF
JOIN sys.dm_io_virtual_file_stats(2, NULL) AS FS
ON FS.file_id = DBF.file_id
WHERE DBF.type_desc = 'ROWS'
--这里放入需要测量的语句
SELECT tempdb_read_MB = (SUM(num_of_bytes_read) - @read) / 1024. / 1024.,
tempdb_write_MB = (SUM(num_of_bytes_written) - @write) / 1024. / 1024.,
internal_use_MB =
(
SELECT internal_objects_alloc_page_count / 128.0
FROM sys.dm_db_task_space_usage
WHERE session_id = @@SPID
)
FROM tempdb.sys.database_files AS DBF
JOIN sys.dm_io_virtual_file_stats(2, NULL) AS FS
ON FS.file_id = DBF.file_id
WHERE DBF.type_desc = 'ROWS'
标签:SQL SERVER
您可能感兴趣
- sqlserver数据库基本操作(SQL Server四个系统表的知识讲解)
- sql server使用手册(SQL Server连接查询的实用教程)
- sqlserver中的存盘按钮在哪(SQL Server 2016里的sys.dm_exec_input_buffer的问题)
- SQL Server表误删记录如何恢复
- SQL语句查询SQL SERVER作业的调度信息
- 查询SQL SERVER中某个数据库的每个表的数据量和每行记录所占用空间
- sqlserver限制windows身份登录(解决sql server 数据库,sa用户被锁定的问题)
- sqlserver中根据类型分组(SQL SERVER 分组求和sql语句)
- sqlserver基础查询语句(SQL Server子查询的深入理解)
- sqlserver数据库备份怎么还原(SQL Server2012数据库备份和还原的教程)
- sqlserver 查询数据库增长设置(SQL设置SQL Server最大连接数及查询语句)
- sql server中的死锁
- sqlserver查看某个库所有表(SQL Server怎么找出一个表包含的页信息Page)
- Sql Server事务日志
- sqlserver 多实例怎么算许可(SQL Server使用row_number分页的实现方法)
- sql server中使用xp_readerrorlog查看错误日志
- 为什么现在社会越来越卷了(现在社会为什么发展那么快呢)
- 直播带货能赚到很多钱吗(直播带货能赚到很多钱吗现在)
- 做网红真的很能赚钱吗(做网红真的很能赚钱吗)
- 10句英语常用(英语常用900句)
- 爱情能当饭吃吗(爱情能当饭吃吗说说)
- 白T恤穿法(白t恤)
热门推荐
- SQL语句中的乘号处理
- flash一直在最上方,设置z-index无效
- django登录模块(Django实现单用户登录的方法示例)
- php工作原理及功能(php设计模式之适配器模式原理、用法及注意事项详解)
- laravel验证码依赖(laravel5.2表单验证,并显示错误信息的实例)
- php 上传临时文件扩展名(浅析PHP 中move_uploaded_file 上传中文文件名失败)
- serv-u服务器安装(Serv-U搭建FTP服务器教程之建立登录用户和密码)
- CSS中overflow的用法
- hive数值转字符串(hive中将string数据转为bigint的操作)
- mysql中怎么删除整张表(MySQL如何优雅的删除大表实例详解)