共用方式為


.drop extents 命令

適用於: ✅Microsoft網狀架構Azure 數據總管

從指定的資料庫或數據表卸除範圍。

此命令有數個變體:在一個中,要卸除的範圍是由 Kusto 查詢所指定。 在其他變體中,範圍是使用以下所述的迷你語言來指定。

注意

數據分區稱為 範圍,所有命令都會使用「範圍」或「範圍」做為同義字。 如需範圍的詳細資訊,請參閱 範圍 (資料分區) 概觀

警告

如果您卸除某個範圍,則會刪除該範圍中的所有數據列。 若要刪除個別記錄,請使用 虛刪除

權限

如果指定 TableName,您至少必須具有執行命令的數據表管理員許可權。

如果未指定 TableName,您至少必須擁有執行命令的資料庫管理員許可權。

語法

使用查詢卸除範圍

.dropextents [whatif] <| 查詢

深入瞭解 語法慣例

參數

姓名 類型​​ 必要 描述
whatif string 如果指定,則會報告範圍,而不是捨棄範圍。
查詢 string ✔️ Kusto 查詢語言 (KQL) 查詢的結果會指定要卸除的來源數據表和範圍識別碼。 應該傳回名為 「ExtentId」 和 「TableName」 之數據行的記錄集。

卸除特定或多個範圍

.dropextents (ExtentIds) from TableName

參數

姓名 類型​​ 必要 描述
ExtentIds guid ✔️ 要卸除之範圍的一或多個逗號分隔的唯一標識符。
TableName string 卸除範圍所在的數據表名稱。

依指定的屬性卸除範圍

.dropextents [older N ()] fromhours | daysTableNametablesall | ) [trim byextentsize | datasizeSizeMB | 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