SQL Server怎么寻觅一个表包涵的页音信(Page卡塔尔国

来源:http://www.pykjg.com 作者:一分快三平台 人气:158 发布时间:2020-03-04
摘要:前言 在SQL Server中,怎么样找到一张表或某些索引具有那些页面吗?临时候,大家在言之有序和钻研的时候还真有那般的必要,那么怎样做吗? SQLServer2013提供了贰个无文书档案的DMF能够

前言

在SQL Server中,怎么样找到一张表或某些索引具有那些页面吗? 临时候,大家在言之有序和钻研的时候还真有那般的必要,那么怎样做吗? SQL Server 2013提供了贰个无文书档案的DMF能够兑现我们的供给,sys.dm_db_database_page_allocations有上面多少个参数:

@DatabaseId: 数据库的ID,能够用DB_ID(卡塔尔函数获取有个别数据库或当前数据库的ID @TableId: 表的ID。 我们得以应用OBJECT_ID函数通过表名获取表ID。 那是一个可选参数,倘若将其看成NULL传递,则赶回与数据库中全部表的涉嫌页面,当它为NULL时,将忽视接下去的多少个参数值 @IndexId: 索引的索引ID。 大家得以行使sys.indexes目录视图来博取索引ID。 它是叁个可选参数,若是将其视作NULL传递,则赶回全体索引关联的页面。 @PartitionId: 分区的ID,它是四个可选参数,如若将其充任NULL传递,则赶回与具备分区关联的页面. @Mode: 那是必填参数,有“LIMITED”或“DETAILED”八个参数。 “LIMITED”再次回到的新闻非常少。 “DETAILED”会回来详细/越多音信。显明,“DETAILED”格局会占用越多财富。

对于大表来讲,要是接受“DETAILED”参数,则消耗的财富和岁月相当短,那时特别常有要求选拔“LIMITED”参数。

为了越来越好的明亮sys.dm_db_database_page_allocations输出的数目,其实我们有至关重大轻巧驾驭、回看一下SQL Server中数量存储的相干知识点。 那就关系到页和区的概念了。SQL Server中多少存款和储蓄的骨干单位是页,磁盘I/O操作在页级推行。也便是说,SQL Server读取或写入数据的细小单位即使以8 KB为单位的页。

区是管理空间的中坚单位。 叁个区是8个大意上总是的页的集聚,全部页都存款和储蓄在区中。区用来有效地管理页全部页都存款和储蓄在区中。 SQL Server中有三种档期的顺序的区:

统一区: 由单个对象具备。区中的持有8页只可以有二个对象使用。 混合区: 最多可由8个指标分享。区中8页中每一页都可由不相同的指标具有。可是一页总是一定要归于三个目的。

SQL Server中页也许有那叁个类型,具体参谋上面表格。

注意事项:微微Page Type超少见,权且有个别资料尚未补偿完备

PAGE_TYPE 页类型 页类型码 描述 1 Data Page DATA_PAGE 数据页(Data Page卡塔尔用来贮存数据 l堆中的数据页 l集中索引中“叶子“页 2 Index Page INDEX_PAGE 索引页,集中索引的非叶子节点和非集中索引的持有索引记录 3 Text Mixed Page TEXT_MIX_PAGE 八个文本页面,个中包括小块的LOB值以致text tree的此中,那一个足以在目录或堆的同一分区中的LOB值之间分享。 A text page that holds small chunks of LOB values plus internal parts of text tree. These can be shared between LOB values in the same partition of an index or heap. 4 Text Tree Page TEXT_TREE_PAGE A text page that holds large chunks of LOB values from a single column value 7 Sort Page 在排序操作时期囤积中间结果的页面 8 Global Allocation Map Page GAM_PAGE GAM在数据文件中第八个页上,文件和页的号码为,它用bit位来标志相应的区是或不是曾经被分配。它基本上能标志约64000个区,相当于4G的上空,要是数额空间超过4G,那么数据库会用其余二个GAM页来标记下三个4G上空 Bit=1:标记当前的区是悠闲的,能够用来分配 Bit=0:标志当前的区已经被数据运用了 9 Shared Global Allocation Map Page SGAM_PAGE SGAM在数据文件的第多个页上,文件和页编号为,它的协会和GAM是同等的,区别在于Bit位的意思分歧: Bit=1:区是混合区,且区内至稀有一个页是能够被用来分配的 Bit=0:区是统一区,恐怕是混合区不过区内享有的页都以在被运用的 10 Index Allocation Map Page IAM_PAGE 表或索引所运用的区的音讯。 11 Page Free Space Page PFS_PAGE 存款和储蓄本数据文件里具备页分配和页的可用空间的新闻 13 Boot Page BOOT_PAGE 包蕴关于数据库的相干消息。数据库中有且独有三个。它坐落于文件1中的第9页。 15 File header page FILEHEADE中华V_PAGE 文件标题页。包罗关于文件的音信。每个文件三个,文件的第0页。 16 Differential Changed Map DIFF_MAP_PAGE 自最终一条BACKUP DATABASE语句之后校勘的区的音讯 17 Bulk Changed Map 自最终一条BACKUP LOG语句之后的大体量操作锁改良的区的音讯 18 a page that's be deallocated byduring a repair operation 19 the temporary page that(orDBCC INDEXDEFRAG卡塔尔(قطر‎ uses when working on an index 20 a page pre-allocated as part of a bulk load operation, which will eventually be formatted as a ‘real' page

另外,关于sys.dm_db_database_page_allocations的出口字段消息如下所示:

字段 汉语字段描述 韩文描述 database_id 数据库ID ID of the database object_id 表或视图对象的ID Object ID For the table or view index_id 索引ID ID for the index partition_id 索引的分区号 Partition number for the index rowset_id 索引的Partition ID Partition ID for the index allocation_unit_id 分配单元的ID ID of the allocation unit allocation_unit_type 分配单元的品类 Type of allocation unit allocation_unit_type_desc 分配单元的门类描述 Description for the allocation unit data_clone_id clone_state clone_state_desc extent_file_id 区的文书ID File ID of the extend extent_page_id 区的公文ID Page ID for the extend allocated_page_iam_file_id 与页面关联的目录分配映射页面包车型大巴文本ID File ID for the index allocation map page associate to the page allocated_page_iam_page_id 与页面关联的目录分配映射页面包车型地铁页面ID Page ID for the index allocation map page associated to the page allocated_page_file_id 分配页面包车型客车File ID File ID of the allocated page allocated_page_page_id 分配页面包车型客车Page ID Page IDfor the allocated page is_allocated 该页是还是不是被分配出去了 Indicates whether a page is allocated is_iam_page 是否为IAM页 Indicates whether a page is the index allocation page is_mixed_page_allocation 是或不是分配的插花页面 Indicates whether a page is allocated page_free_space_percent 页面包车型地铁闲暇比例 Percentage of space free on the page page_type 页面包车型大巴品类 Description of the page type page_type_desc 页面包车型大巴项目描述 page_level 页的层数 next_page_file_id 下八个页的Fiel ID File ID for the next page next_page_page_id 下二个页的Page ID Page ID for the next page previous_page_file_id 前一个页的File ID File ID for the previous page previous_page_page_id 前三个页的Page ID Page ID for the previous Page is_page_compressed 页是还是不是收缩 Indicates whether the page is compressed has_ghost_records 是或不是存虚影记录记录 Indicates whether the page have ghost records

简言之询问了下面知识点后,大家在动用那些DMF找寻表或索引相关的页面,基本上能够读懂那些输出音信了。

USE AdventureWorks2014GOSELECT DB_NAME(pa.database_id) AS [database_name] , OBJECT_NAME(pa.object_id) AS [table_name] , id.name AS [index_name] , pa.partition_id AS [partition_id], pa.is_allocated AS [is_allocated], pa.allocated_page_file_id AS [file_id] , pa.allocated_page_page_id AS [page_id] , pa.page_type_desc , pa.page_level , pa.previous_page_page_id AS [previous_page_id] , pa.next_page_page_id AS [next_page_id] , pa.is_mixed_page_allocation AS [is_mixed_page_allocation], pa.is_iam_page AS [is_iam_page], pa.allocation_unit_id AS [allocation_unit_id], pa.has_ghost_records AS [has_ghost_records]FROM sys.dm_db_database_page_allocations(DB_ID('AdventureWorks2014'), OBJECT_ID('TestDeadLock'), NULL, NULL, 'DETAILED') pa LEFT OUTER JOIN sys.indexes id ON id.object_id = pa.object_id AND id.index_id = pa.index_idORDER BY page_level DESC , is_allocated DESC , previous_page_page_id;

参照他事他说加以考察资料:

总结

如上正是那篇文章的全部内容了,希望本文的从头到尾的经过对大家的求学只怕专门的工作有着自然的参照学习价值,感谢大家对台本之家的支撑。

本文由一分快三平台发布于一分快三平台,转载请注明出处:SQL Server怎么寻觅一个表包涵的页音信(Page卡塔尔国

关键词:

最火资讯