跳至主要内容

Table.Buffer

在記憶體中緩衝處理資料表,讓它在評估期間與外部變更隔離。

Syntax

Table.Buffer(
table as table,
optional options as record
) as table

Remarks

在記憶體中緩衝處理資料表,讓它在評估期間與外部變更隔離。 緩衝處理為淺層。它會強制評估任何純量儲存格的值,但非純量值 (記錄、清單、資料表等) 則保持原樣。

  • table: 要在記憶體中緩衝的資料表。
  • options: (選用) 可使用以下選項記錄值:
    • BufferMode: 緩衝模式,描述要執行的緩衝類型。此選項可為 BufferMode.EagerBufferMode.Delayed

使用此函數可能會讓查詢加速,也可能不會。在某些情況下,由於 讀取所有資料並將其儲存在記憶體中的新增成本,以及緩衝會防止下游摺疊,它可能會導致查詢執行速度變慢。如果資料不需要 緩衝處理,但您只是想防止下游摺疊,請改用 Table.StopFolding

Examples

Example #1

將 SQL 資料表的所有資料列載入記憶體,讓所有下游作業都無法再查詢 SQL Server。

let
Source = Sql.Database("SomeSQLServer", "MyDb"),
MyTable = Source{[Item="MyTable"]}[Data],
BufferMyTable = Table.Buffer(MyTable)
in
BufferMyTable

Result:

table

Category

Table.Other