Перейти до основного вмісту

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-сервера.

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

Result:

table

Category

Table.Other