适用于:✅Azure 数据资源管理器
注意
数据分片称为“区”,所有命令都将“extent”或“extents”作为同义词使用。 有关盘区的详细信息,请参阅盘区(数据分片)概述。
.show extents 命令的类型如下:
注意
如果 .show extents 命令在具有多个区的范围(如数据库或群集)内运行,则可能会消耗大量资源。 建议在尽可能小的范围内使用命令变量。 表范围优于数据库范围,数据库范围优于群集范围。 包含筛选区功能的命令变量优于使用另一个查询来筛选命令结果。
权限
若要查看群集上的盘区,必须具有 AllDatabasesMonitor 权限。
若要查看数据库上的盘区,必须具有 Database User、Database Viewer 或 Database Monitor 权限。
有关详细信息,请参阅基于角色的访问控制。
表范围
语法
显示有关指定表中存在的盘区(数据分片)的信息。 数据库取自命令的上下文。
如果指定了 hot则仅显示应位于热缓存中的盘区。
.show table TableName extents [( ExtentId [, ...])] [hot] [where tags (has|contains|!has|!contains) TagName [and tags (has|contains|!has|!contains) TagName [, ...]]]
.show tables (TableName [, ...]) extents [( ExtentId [, ...])] [hot] [where tags (has|contains|!has|!contains) TagName [and tags (has|contains|!has|!contains) TagName [, ...]]]
详细了解语法约定。
参数
| 客户 | 类型 | 必需 | 说明 |
|---|---|---|---|
| TableName | string |
✔️ | 表的名称。 |
| ExtentId | string |
要显示的盘区的 ID。 | |
| 标记 | string |
要按说明筛选的标记的名称。 |
建议
- 在命令中使用内置筛选功能比添加基于查询的筛选器(例如,添加
| where DatabaseName == '...'和TableName == '...')更可取。 - 如果提供了盘区 ID 的可选列表,则返回的数据集仅限于这些盘区。
- 此方法比筛选“bare”命令的结果(添加
| where ExtentId in(...))要快。
- 此方法比筛选“bare”命令的结果(添加
- 如果指定了
tags筛选器:- 返回的列表仅限于标记集合遵循所有提供的标记筛选条件的盘区。
- 此方法比筛选“bare”命令的结果(添加
| where Tags has '...' and Tags contains '...')要快。 has筛选器是相等性筛选器。 未使用任何指定标记标记的盘区会被筛选掉。!has筛选器是相等负筛选器。 使用任何指定标记标记的盘区会被筛选掉。contains筛选器是不区分大小写的子字符串筛选器。 未将指定字符串作为其任何标记的子字符串的盘区会被筛选掉。!contains筛选器是不区分大小写的子字符串负筛选器。 将指定字符串作为其任何标记的子字符串的盘区会被筛选掉。
数据库范围
显示有关指定数据库中存在的盘区(数据分片)的信息。
如果指定了 hot - 仅显示应位于热缓存中的盘区。
语法
.show database DatabaseName extents [( ExtentId [, ...])] [hot] [where tags (has|contains|!has|!contains) TagName [and tags (has|contains|!has|!contains) TagName [, ...]]]
详细了解语法约定。
参数
| 客户 | 类型 | 必需 | 说明 |
|---|---|---|---|
| DatabaseName | string |
✔️ | 数据库的名称。 |
| ExtentId | string |
要显示的盘区的 ID。 | |
| 标记 | string |
要按说明筛选的标记的名称。 |
群集范围
语法
.show cluster extents [hot]
详细了解语法约定。
显示有关群集中存在的盘区(数据分片)的信息。
如果指定了 hot - 仅显示应位于热缓存中的盘区。
返回
| 输出参数 | 类型 | 说明 |
|---|---|---|
| ExtentId | guid |
盘区 ID |
| DatabaseName | string |
盘区所属的数据库。 |
| TableName | string |
盘区所属的表。 |
| MaxCreatedOn | datetime |
创建盘区时的日期时间。 对于合并的盘区,则是源盘区中创建时间的最大值。 |
| OriginalSize | 双精度 | 盘区数据的原始大小(以字节为单位)。 |
| ExtentSize | 双精度 | 内存中的盘区大小(已压缩 + 索引)。 |
| CompressedSize | 双精度 | 内存中盘区数据的压缩大小。 |
| IndexSize | 双精度 | 盘区数据的索引大小。 |
| 块 | long |
盘区中的数据块数。 |
| 段数 | long |
盘区中的数据段数。 |
| ExtentContainerId | string |
盘区所在的盘区容器的 ID。 |
| RowCount | long |
盘区中的行数。 |
| MinCreatedOn | datetime |
创建盘区时的日期时间。 对于合并的盘区,则是源盘区中创建时间的最小值。 |
| 标记 | string |
为盘区定义的标记(如果有)。 |
| 种类 | string |
创建了盘区的存储引擎的类型。 |
| DeletedRowCount | long |
盘区中已删除的行数。 |
示例
标记的盘区
表 T 中的盘区 E 用标记 aaa、BBB 和 ccc 进行标记。
此查询返回
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'