[转载]如何查看某个查询使用了多少TempDB空间

http://www.cnblogs.com/CareySon/p/3910337.html

通过下面脚本可以查看某个查询实用的TempDB的空间.

第一步是查询出当下TempDB实用空间是多少,

第二步是执行某查询语句

第三步是用当先TempDB空间-第一步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‘

时间: 2024-10-29 19:07:08

[转载]如何查看某个查询使用了多少TempDB空间的相关文章

如何查看某个查询用了多少TempDB空间

最近帮助客户调优的过程中,发现客户的TempDB存在非常大的压力,经过排查是发现某些语句对TempDB的巨量使用所导致. 在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序.hash join.work table等) 外部使用(临时表,表变量等) 行版本控制(乐观并发控制) 而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行.排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQL Server预估需要多少内存,在具体的执行过程中,如果授予的内存

如何查看Navicat 查询结果

Navicat for MySQL 提供 Navicat Cloud 服务给用户,同步连接设置.模型.查询和虚拟组到云.这样就能随时随地实时访问.有了 Navicat Cloud,便可以善用一天中的每分每秒,最大限度提高工作效率.下面讲讲如何查看Navicat 查询结果?Navicat 运行查询,在工具栏中点击“运行”按钮,如果查询语句完全正确,该查询将被运行,并在结果选项卡返回相应的查询数据:如果运行查询时发生错误,运行停止,并显示相应的错误信息. Navicat 查询结果 结果选项卡以网格显

linux下使用 du查看某个文件或目录占用磁盘空间的大小

du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh 一.du的功能:`du` reports the amount of disk space used by the specified files and for each subdirectory (of directory argum

MySQL中查询所有数据库占用磁盘空间大小和单个库中所有表的大小的sql语句

查询所有数据库占用磁盘空间大小的SQL语句: select TABLE_SCHEMA, concat(truncate(sum(data_length)/1024/1024,2),' MB') as data_size, concat(truncate(sum(index_length)/1024/1024,2),'MB') as index_size from information_schema.tables group by TABLE_SCHEMA order by data_lengt

如何查看SQLServer数据库每个表占用的空间大小?

如何查看SQLServer数据库每个表占用的空间大小? 创建存储过程: CREATE PROCEDURE [dbo].[sys_viewTableSpace]AS BEGIN SET NOCOUNT ON; CREATE TABLE [dbo].#tableinfo( 表名 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL, 记录数 [int] NULL, 预留空间 [varchar](50) COLLATE Chinese_PRC_CI_AS NULL,

[转帖]linux下使用 du查看某个文件或目录占用磁盘空间的大小

du -ah --max-depth=1 去年用过一次 后来忘记了.. 命令这个东西 熟能生巧.. https://www.cnblogs.com/kobe8/p/3825461.html du -ah --max-depth=1     这个是我想要的结果  a表示显示目录下所有的文件和文件夹(不含子目录),h表示以人类能看懂的方式,max-depth表示目录的深度. du命令用来查看目录或文件所占用磁盘空间的大小.常用选项组合为:du -sh 一.du的功能:`du` reports the

MSSQL 2005 如和查询所有Table使用的空间

最近在整理之前工作时后的一些东西,刚好看到当时因为想观察各个Table成长速度所产生的语法 贴出来这边跟大家分享一下 ( Table_Name sysname,笔数 int , 保留空间 varchar(10), 使用空间 varchar(10), 索引使用空间 varchar(10), 未用空间 varchar(10)) insert into #tb exec sp_MSforeachtable 'EXEC sp_spaceused ''?''' select * from #tb go d

MySQL中如何查看“慢查询”,如何分析执行SQL的效率?

一.MySQL数据库有几个配置选项可以帮助我们及时捕获低效SQL语句 1,slow_query_log这个参数设置为ON,可以捕获执行时间超过一定数值的SQL语句. 2,long_query_time当SQL语句执行时间超过此数值时,就会被记录到日志中,建议设置为1或者更短. 3,slow_query_log_file记录日志的文件名. 4,log_queries_not_using_indexes这个参数设置为ON,可以捕获到所有未使用索引的SQL语句,尽管这个SQL语句有可能执行得挺快. 二

转载-mysql查看语句执行效率

Explain命令在解决数据库性能上是第一推荐使用命令,大部分的性能问题可以通过此命令来简单的解决,Explain可以用来查看SQL 语句的执行效 果,可以帮助选择更好的索引和优化查询语句,写出更好的优化语句. Explain语法:explain select … from … [where ...] 例如:explain select * from news; 输出: +----+-------------+-------+-------+-------------------+-------