Heim > Datenbank > MySQL-Tutorial > 如何查看SQLSERVER中某个查询用了多少TempDB空间

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

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
Freigeben: 2016-06-07 15:15:35
Original
1097 Leute haben es durchsucht

原文: 点击打开链接 在SQL Server中,TempDB主要负责供下述三类情况使用: 内部使用(排序、hash join、work table等) 外部使用(临时表,表变量等) 行版本控制(乐观并发控制) 而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行、排序等操作

原文: 点击打开链接


  在SQL Server中,TempDB主要负责供下述三类情况使用:

内部使用(排序、hash join、work table等)
外部使用(临时表,表变量等)
行版本控制(乐观并发控制)
 
    而对于内部使用,一些比较复杂的查询中由于涉及到了大量的并行、排序等操作时就需要大量的内存空间,每一个查询在开始时都会由SQL Server预估需要多少内存,在具体的执行过程中,如果授予的内存不足,则需要将多出来的部分由TempDB处理,这也就是所谓的Spill to TempDB。

    通过下述语句可以观察到某个查询对TempDB造成了多少读写:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

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'

    最近在一个客户那里看到的烂查询所导致的TempDB使用结果如下:

如何查看SQLSERVER中某个查询用了多少TempDB空间
 
    使用该查询就可以帮助了解某个语句使用了多少TempDB。


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage