---
title: BufferMode.Type – เลือกวิธีการเก็บข้อมูลแบบไหน?
url: https://www.thepexcel.com/functions/power-query/enumerations/buffermode-type/
type: function-explainer
program: Power Query
syntax: "BufferMode.Eager | BufferMode.Delayed"
date: 2025-12-04
updated: 2025-12-26
scores:
  popularity: 3
  difficulty: 2
  usefulness: 3
---

# BufferMode.Type – เลือกวิธีการเก็บข้อมูลแบบไหน?

> BufferMode.Type คือประเภท enumeration ที่ใช้กำหนดวิธีการเก็บข้อมูลในหน่วยความจำ (buffer) ของ Power Q

## คำอธิบาย

BufferMode.Type คือประเภท enumeration ที่ใช้กำหนดวิธีการเก็บข้อมูลในหน่วยความจำ (buffer) ของ Power Query ให้เลือกระหว่าง Eager หรือ Delayed

## Syntax

```excel
BufferMode.Eager | BufferMode.Delayed
```

## Arguments

| Name | Required | Type | Default | Description |
| --- | --- | --- | --- | --- |
| BufferMode.Eager | No | BufferMode.Type |  | เก็บข้อมูลทั้งชุดลงในหน่วยความจำทันทีก่อนจะดำเนินการต่อไป เร็ว แต่อาจใช้ RAM มากเวลาข้อมูลใหญ่ |
| BufferMode.Delayed | No | BufferMode.Type |  | ตรวจสอบประเภทข้อมูล (schema) ทันที แต่รอให้ query จำเป็นต้องใช้ค่อยเก็บข้อมูลจริง ประหยัด RAM ตอนพัฒนา |

## ตัวอย่าง

### 1. ใช้ BufferMode.Eager เพื่อเก็บข้อมูลทันที

```excel
let
    Source = Table.FromRows({{1, "A"}, {2, "B"}}, {"ID", "Name"}),
    Buffered = Table.Buffer(Source, BufferMode.Eager)
in
    Buffered
```

**ผลลัพธ์:** `โครงสร้างของตาราง ID และ Name เก็บลงหน่วยความจำเสร็จสิ้นแล้ว`

ใช้ BufferMode.Eager เวลาต้องการให้ข้อมูลโหลดเสร็จก่อนทำขั้นตอนต่อ ผมใช้แบบนี้ตอนการคำนวณต้องใช้ข้อมูลเดียวกันซ้ำๆ

### 2. ใช้ BufferMode.Delayed เพื่อเร็วในการพัฒนา

```excel
let
    Source = Table.FromRows({{1, "A"}, {2, "B"}}, {"ID", "Name"}),
    Buffered = Table.Buffer(Source, BufferMode.Delayed)
in
    Buffered
```

**ผลลัพธ์:** `ระบบจะตรวจสอบ schema ทันที แต่ข้อมูลเต็มๆ จะโหลดต่อมา`

ใช้ Delayed เวลาพัฒนา query ใน Power BI Desktop เพื่อให้ closing dialog เร็ว ส่วนตัวผม ผมใช้แบบนี้ทุกครั้งตอนทำ query ใหม่ๆ

### 3. เปลี่ยนไป Eager ก่อน refresh ข้อมูลจริง

```excel
let
    Source = Excel.Workbook(File.Contents("C:\\data.xlsx"), true),
    Data = Source{[Item="Sheet1"]}[Data],
    // ตอนพัฒนา ใช้ Delayed
    // Buffered = Table.Buffer(Data, BufferMode.Delayed)
    // พอเสร็จแล้ว เปลี่ยนเป็น Eager
    Buffered = Table.Buffer(Data, BufferMode.Eager)
in
    Buffered
```

**ผลลัพธ์:** `ข้อมูลจาก Excel โหลดเสร็จสมบูรณ์ก่อนดำเนินการต่อ`

ผมแนะนำให้ใช้วิธีนี้ - ตอนพัฒนา ใช้ Delayed เพื่อความรวดเร็ว พอเสร็จแล้วค่อยเปลี่ยนเป็น Eager ตอน refresh ข้อมูลจริง

## หมายเหตุเพิ่มเติม

- ผมแนะนำให้ใช้ BufferMode.Delayed ตอนพัฒนา Power BI Desktop เพราะมันจะทำให้การปิด Power Query window เร็ว ข้อมูลจริงค่อยโหลดเวลา refresh

- ส่วนตัวผม ผมเปลี่ยนเป็น Eager ตอนข้อมูลเสถียร schema ไม่เปลี่ยน และผม ต้อง refresh ข้อมูลจริง เพื่อให้ประสิทธิภาพดี

- ถ้าคุณจำเป็นต้องวัด performance ของ query ผมแนะนำให้ใช้ Eager เพื่อให้แน่ใจว่าข้อมูลโหลดเสร็จแล้ว ค่อยวัด

## คำถามที่พบบ่อย

**Q: BufferMode.Eager กับ Delayed มีความแตกต่างตรงไหนบ้าง?**

ผม อธิบายให้ฟังนะครับ - Eager มันเก็บข้อมูลทั้งหมดลงหน่วยความจำทันที ทำให้ก้าวต่อไปเร็ว แต่อาจแล้ง RAM ส่วน Delayed มันแค่ check schema ก่อน ค่อยเก็บข้อมูลเวลาต้องใช้ ทำให้ Power BI Desktop รีฟรบเร็ว ตอนพัฒนา

**Q: ผมควรใช้ BufferMode.Delayed หรือ Eager ดีคะ?**

ส่วนตัวผม ผมแนะนำให้ใช้ Delayed ตอนพัฒนา query เพราะเร็วขึ้น แต่พอเสร็จแล้วค่อยเปลี่ยนเป็น Eager ตอน refresh ข้อมูลจริง เพื่อให้แน่ใจว่าข้อมูลโหลดเสร็จก่อนทำต่อ

**Q: ถ้าไม่ใช้ Table.Buffer เลย BufferMode.Type มีประโยชน์ไหม?**

ผมว่าไม่นะครับ BufferMode.Type มันออกแบบมาเพื่อใช้กับ Table.Buffer เท่านั้น ถ้าคุณไม่ใช้ Buffer ก็ไม่ต้องจัดการกับ BufferMode

## แหล่งข้อมูลเพิ่มเติม

- [Microsoft Learn: BufferMode.Type](https://learn.microsoft.com/en-us/powerquery-m/buffermode-type) _(official)_
- [PowerQuery.how: BufferMode.Type Reference](https://powerquery.how/buffermode-type/) _(article)_
- [Chris Webb Blog: New Options For Table.Buffer Function](https://blog.crossjoin.co.uk/2022/03/20/new-options-for-the-table-buffer-function-in-power-query/) _(article)_
- [PowerQuery.how: Table.Buffer Function](https://powerquery.how/table-buffer/) _(article)_

---

_Source: [https://www.thepexcel.com/functions/power-query/enumerations/buffermode-type/](https://www.thepexcel.com/functions/power-query/enumerations/buffermode-type/)_
