.drop extents 命令
適用於: ✅Microsoft網狀架構✅Azure 數據總管
從指定的資料庫或數據表卸除範圍。
此命令有數個變體:在一個中,要卸除的範圍是由 Kusto 查詢所指定。 在其他變體中,範圍是使用以下所述的迷你語言來指定。
注意
數據分區稱為 範圍,所有命令都會使用「範圍」或「範圍」做為同義字。 如需範圍的詳細資訊,請參閱 範圍 (資料分區) 概觀。
警告
如果您卸除某個範圍,則會刪除該範圍中的所有數據列。 若要刪除個別記錄,請使用 虛刪除。
權限
如果指定 TableName,您至少必須具有執行命令的數據表管理員許可權。
如果未指定 TableName,您至少必須擁有執行命令的資料庫管理員許可權。
語法
使用查詢卸除範圍
.drop
extents
[whatif
] <|
查詢
深入瞭解 語法慣例。
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
whatif |
string |
如果指定,則會報告範圍,而不是捨棄範圍。 | |
查詢 | string |
✔️ | 此 Kusto 查詢語言 (KQL) 查詢的結果會指定要卸除的來源數據表和範圍識別碼。 應該傳回名為 「ExtentId」 和 「TableName」 之數據行的記錄集。 |
卸除特定或多個範圍
.drop
extents
(
ExtentIds)
from
TableName
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
ExtentIds | guid |
✔️ | 要卸除之範圍的一或多個逗號分隔的唯一標識符。 |
TableName | string |
卸除範圍所在的數據表名稱。 |
依指定的屬性卸除範圍
.drop
extents
[older
N ()] from
(hours
| days
TableNametables
all
| ) [trim
by
(extentsize
| datasize
) Size (MB
| bytes
| GB
)] [limit
LimitCount]
參數
姓名 | 類型 | 必要 | 描述 |
---|---|---|---|
否 | int |
✔️ | 卸除超過 N 天/小時的範圍。 |
TableName | string |
卸除範圍所在的數據表名稱 | |
大小 | int |
✔️ | 修剪資料庫中的數據,直到範圍總和符合所需的大小 (MaxSize) 為止。 |
LimitCount | int |
✔️ | 套用至第一個 LimitCount 範圍。 |
命令支援產生輸出的模擬模式,就像命令會執行一樣,但不實際執行它。 使用 .drop-pretend
取代 .drop
。
傳回
此命令會傳回具有下列信息的數據表。
輸出參數 | 類型 | 描述 |
---|---|---|
ExtentId | string |
因為命令而卸除的 ExtentId |
TableName | string |
數據表名稱,其中範圍所屬 |
CreatedOn | dateTime |
時間戳,保留最初建立範圍時的相關信息 |
例如,命令的傳回值看起來可能如下表所示。
範圍標識碼 | 資料表名稱 | 建立日期 |
---|---|---|
43c6e03f-1713-4ca7-a52a-5db8a4e8b87d | TestTable | 2015-01-12 12:48:49.4298178 |
範例
卸除特定範圍
使用範圍標識碼卸除特定範圍。
.drop extent 609ad1e2-5b1c-4b79-90c0-1dec262e9f46 from Table1
卸除多個範圍
使用範圍標識碼清單來卸除多個範圍。
.drop extents (609ad1e2-5b1c-4b79-90c0-1dec262e9f46, 310a60c6-8529-4cdf-a309-fe6aa7857e1d) from Table1
依建立時間移除所有範圍
從資料庫中的所有數據表移除 10 天前建立的所有範圍 MyDatabase
.drop extents <| .show database MyDatabase extents | where CreatedOn < now() - time(10d)
依時間建立移除一些範圍
拿掉資料表 Table1
中的所有範圍,且 Table2
其建立時間超過10天前
.drop extents older 10 days from tables (Table1, Table2)
使用 extent_id 移除範圍()
使用內 extent_id()
建函式從數據表中移除範圍。
.drop extents <|
StormEvents
| where EventId == '66144'
| summarize by ExtentId = extent_id(), TableName = "StormEvents"
模擬模式:顯示命令將移除哪些範圍
注意
範圍標識元參數不適用於此命令。
.drop-pretend extents older 10 days from all tables
從 'TestTable' 移除所有範圍
.drop extents from TestTable
注意
如果已啟用串流擷取,移除所有範圍不一定會刪除資料表中的所有數據。 若要清除資料表的所有資料,請使用 .clear table data TestTable
。