.show 盘区

注意

数据分片称为“区”,所有命令都将“extent”或“extents”作为同义词使用。 有关盘区的详细信息,请参阅盘区(数据分片)概述

.show extents 命令的类型如下:

注意

如果 .show extents 命令在具有多个区的范围(如数据库或群集)内运行,则可能会消耗大量资源。 建议在尽可能小的范围内使用命令变量。 表范围优于数据库范围,数据库范围优于群集范围。 包含筛选区功能的命令变量优于使用另一个查询来筛选命令结果。

权限

若要查看群集上的区,必须具有 AllDatabasesMonitor 权限。

若要查看数据库上的区,必须具有数据库用户、数据库查看者或数据库监视者权限。

有关详细信息,请参阅基于角色的访问控制

表范围

语法

显示有关指定表中存在的盘区(数据分片)的信息。 数据库取自命令的上下文。 如果指定了 hot则仅显示应位于热缓存中的盘区。

.showtableTableNameextents [(ExtentId [, ...])] [hot] [wheretags (has|contains|!has|!contains) TagName [andtags (has|contains|!has|!contains) TagName [, ...]]]

.showtables(TableName [, ...])extents [(ExtentId [, ...])] [hot] [wheretags (has|contains|!has|!contains) TagName [andtags (has|contains|!has|!contains) TagName [, ...]]]

详细了解语法约定

参数

客户 类型​​ 必需 说明
TableName string 表的名称。
ExtentId string 要显示的盘区的 ID。
标记 string 要按说明筛选的标记的名称。

建议

  • 在命令中使用内置筛选功能比添加基于查询的筛选器(例如,添加 | where DatabaseName == '...'TableName == '...')更可取。
  • 如果提供了盘区 ID 的可选列表,则返回的数据集仅限于这些盘区。
    • 此方法比筛选“bare”命令的结果(添加 | where ExtentId in(...))要快。
  • 如果指定了 tags 筛选器:
    • 返回的列表仅限于标记集合遵循所有提供的标记筛选条件的盘区。
    • 此方法比筛选“bare”命令的结果(添加 | where Tags has '...' and Tags contains '...')要快。
    • has 筛选器是相等性筛选器。 未使用任何指定标记标记的盘区会被筛选掉。
    • !has 筛选器是相等负筛选器。 使用任何指定标记标记的盘区会被筛选掉。
    • contains 筛选器是不区分大小写的子字符串筛选器。 未将指定字符串作为其任何标记的子字符串的盘区会被筛选掉。
    • !contains 筛选器是不区分大小写的子字符串负筛选器。 将指定字符串作为其任何标记的子字符串的盘区会被筛选掉。

数据库范围

显示有关指定数据库中存在的盘区(数据分片)的信息。 如果指定了 hot - 仅显示应位于热缓存中的盘区。

语法

.showdatabaseDatabaseNameextents [(ExtentId [, ...])] [hot] [wheretags (has|contains|!has|!contains) TagName [andtags (has|contains|!has|!contains) TagName [, ...]]]

详细了解语法约定

参数

客户 类型​​ 必需 说明
DatabaseName string 数据库的名称。
ExtentId string 要显示的盘区的 ID。
标记 string 要按说明筛选的标记的名称。

群集范围

语法

.showclusterextents [hot]

详细了解语法约定

显示有关群集中存在的盘区(数据分片)的信息。 如果指定了 hot - 仅显示应位于热缓存中的盘区。

返回

输出参数 类型 说明
ExtentId guid 盘区 ID
DatabaseName string 盘区所属的数据库
TableName string 盘区所属的表
MaxCreatedOn datetime 创建盘区时的日期时间。 对于合并的盘区,则是源盘区中创建时间的最大值
OriginalSize Double 盘区数据的原始大小(以字节为单位)
ExtentSize Double 内存中的盘区大小(已压缩 + 索引)
CompressedSize Double 内存中盘区数据的压缩大小
IndexSize Double 盘区数据的索引大小
long 盘区中的数据块数
段数 long 盘区中的数据段数
ExtentContainerId string 盘区所在的盘区容器的 ID
RowCount long 盘区中的行数
MinCreatedOn datetime 创建盘区时的日期时间。 对于合并的盘区,则是源盘区中创建时间的最小值
标记 string 为盘区定义的标记(如果有)
种类 string 创建了区的存储引擎的类型
DeletedRowCount long 区中已删除的行数

示例

标记的盘区

T 中的盘区 E 用标记 aaaBBBccc 进行标记。

  • 此查询返回 E

      .show table T extents where tags has 'aaa' and tags contains 'bb'
    
  • 此查询不会返回 E,因为它未使用 aa 进行标记:

      .show table T extents where tags has 'aa' and tags contains 'bb'
    
  • 此查询返回 E

      .show table T extents where tags contains 'aaa' and tags contains 'bb' 
    

显示创建的盘区量

显示每小时在特定数据库中创建的盘区量

.show database MyDatabase extents | summarize count(ExtentId) by MaxCreatedOn bin=time(1h) | render timechart  

显示每个表每小时到达的数据量

.show database MyDatabase extents  
| summarize sum(OriginalSize) by TableName, MaxCreatedOn bin=time(1h)  
| render timechart

显示每个表的数据大小分布

.show database MyDatabase extents | summarize sum(OriginalSize) by TableName

显示名为“GamesDB”的数据库中的所有盘区

.show database GamesDB extents

显示名为“Games”的表中的所有盘区

.show table Games extents

显示特定表中的所有盘区

显示名为“TaggingGames1”和“TaggingGames2”并标记为“tag1”和“tag2”的表中的所有盘区

.show tables (TaggingGames1,TaggingGames2) extents where tags has 'tag1' and tags has 'tag2'