Перейти к основному содержимому

Table.Buffer

Помещает таблицу в буфер памяти, изолируя ее из внешних изменений во время оценки.

Syntax​

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

Remarks​

Помещает таблицу в буфер памяти, изолируя ее от внешних изменений во время оценки. Буферизация неглубокая. Она заставляет вычисляться все скалярные значения ячеек, но иные значения (записи, списки, таблицы и так далее) оставляет без изменений.

  • table: таблица для буферизации в памяти.
  • options: (необязательно) Можно использовать следующие значения записей параметров:
    • BufferMode: режим буферизации, определяющий тип буферизации, которую нужно выполнить. Этот параметр может принимать значения BufferMode.Eager или BufferMode.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