---
schema_version: "1"
id: 5c3723924ca315b1a2660320f942cf85be3d519e691df920166f5697c40df1b6
title: สร้างการคำนวณที่มีประสิทธิภาพ
collection: tableau
version: next
locale: th-th
portal_url: https://docs.salesforce.com/tableau/next/th-th/pro/desktop/perf_efficient_calcs.md
canonical_url: https://help.tableau.com/v0.0/pro/desktop/th-th/perf_efficient_calcs.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 105756f0a7a11aed9e6d4f55003e681fafee7f9207606e4cacdc3bd11f3a3c0f
description: Create efficient calculations to improve workbook performance.
---
[ข้ามไปยังเนื้อหาหลัก](#main-content)

# สร้างการคำนวณที่มีประสิทธิภาพ

เมื่อข้อมูลเบื้องหลังที่คุณมีไม่สามารถให้ข้อมูลที่คุณต้องใช้ในการตอบคำถาม คุณสามารถสร้างฟิลด์ที่คำนวณเพื่อช่วยในการวิเคราะห์ได้

ในฟิลด์ที่คำนวณ คุณสามารถกำหนดค่าคงที่ฮาร์ดโค้ด (เช่น อัตราภาษี), ดำเนินการทางคณิตศาสตร์ที่ง่าย เช่น การลบหรือการคูณ (เช่น รายได้ลบต้นทุน), ใช้สูตรคณิตศาสตร์ที่ซับซ้อน, ดำเนินการทดสอบตรรกะ (IF/THEN, CASE), ทำการแปลงประเภท, ส่งนิพจน์ไปยังบริการภายนอก เช่น R และอื่นๆ อีกมากมาย

Tableau มีการคำนวณหลากหลายประเภท ดังนี้:

การคำนวณพื้นฐานและการคำนวณรวม: การคำนวณประเภทเหล่านี้สร้างมาเพื่อเป็นส่วนหนึ่งของการค้นหาในแหล่งข้อมูลทั้งหมด และทำการคำนวณในฐานข้อมูล โดยทั่วไปแล้วการคำนวณพื้นฐานและการคำนวณรวมสามารถปรับขนาดได้ดี และยังมีหลากหลายเทคนิคการปรับแต่งฐานข้อมูลที่สามารถช่วยปรับปรุงประสิทธิภาพให้กับการคำนวณเหล่านี้ได้

การคำนวณตาราง: การคำนวณเช่นจะดำเนินการคำนวณโดย Tableau ในชุดผลลัพธ์การค้นหา ซึ่งแม้จะหมายความว่า Tableau ต้องทำงานหนักขึ้น แต่โดยปกติแล้วการคำนวณตารางจะถูกใช้กับชุดระเบียนขนาดเล็กที่อยู่ในแหล่งข้อมูลดั้งเดิม หากประสิทธิภาพการคำนวณตารางมีปัญหา (อาจเป็นเพราะชุดผลลัพธ์ที่ส่งคืนไปยัง Tableau มีขนาดใหญ่มาก) แนะนำให้พุชข้อมูลบางส่วนของการคำนวณกลับไปยังเลเยอร์แหล่งข้อมูล ซึ่งหนึ่งในวิธีทำคือให้รวมข้อมูลแล้วดำเนินการคำนวณในข้อมูลแบบรวม

นิพจน์ระดับของรายละเอียด (LOD): นิพจน์ LOD สร้างมาเพื่อเป็นส่วนหนึ่งของการค้นหาในแหล่งข้อมูลทั้งหมด และทำการคำนวณในฐานข้อมูล โดยจะแสดงเป็น _nested select_ ดังนั้นนิพจน์นี้จึงทำงานแบบขึ้นอยู่กับประสิทธิภาพของฐานข้อมูล การคำนวณตารางหรือการผสมผสานอาจทำงานได้ดีกว่านิพจน์ LOD หรือกลับกัน

หากคุณสงสัยว่านิพจน์ LOD เป็นสาเหตุที่ทำให้ประสิทธิภาพการทำงานช้า แนะนำให้คุณลองแทนที่ด้วยการคำนวณตารางหรือการผสมผสานข้อมูลเพื่อดูว่าประสิทธิภาพการทำงานดีขึ้นหรือไม่ ตัวอย่างเช่น ดูตัวอย่างที่ 2 ใน[คำสั่งการดำเนินการของ Tableau](https://help.tableau.com/v0.0/pro/desktop/th-th/order_of_operations.htm)

นิพจน์ LOD อาจได้รับผลกระทบจากการลดจำนวนโดยการรวม ดังนั้นโปรดดู [การสันนิษฐานความสมบูรณ์เชิงอ้างอิงสำหรับการรวม](https://help.tableau.com/v0.0/pro/desktop/th-th/joins_assume_refinteg.htm)หากการค้นหาของคุณทำงานช้าเวลาที่คุณใช้นิพจน์ LOD

หากต้องการข้อมูลเพิ่มเติม โปรดดู เอกสารประกอบของ Tableau หัวข้อ[การทำความเข้าใจนิพจน์ระดับรายละเอียด (LOD)](http://www.tableau.com/th-th/learn/whitepapers/understanding-lod-expressions)

## ใช้พารามิเตอร์สำหรับการคำนวณแบบมีเงื่อนไข

หนึ่งในเทคนิคทั่วไปใน Tableau คือให้แสดงการควบคุมพารามิเตอร์เพื่อที่ผู้ใช้จะสามารถเลือกค่าที่กำหนดวิธีการคำนวณได้ โดยมากแล้ว หากต้องการให้ตัวเลือกที่เข้าใจง่ายแก่ผู้ใช้ วิธีที่เหมาะสมคือให้สร้างพารามิเตอร์เป็นประเภทสตริง แต่การคำนวณแบบตัวเลขจะทำงานได้เร็วกว่าการคำนวณแบบสตริงมาก ดังนั้นให้ใช้ประโยชน์จากฟีเจอร์ แสดงเป็น ของพารามิเตอร์: ซึ่งก็คือแสดงป้ายกำกับข้อความแต่ใช้ค่าจำนวนเต็มเบื้องหลังสำหรับตรรกะการคำนวณ หากต้องการข้อมูลเพิ่มเติม โปรดดู [สร้างพารามิเตอร์](https://help.tableau.com/v0.0/pro/desktop/th-th/parameters_create.htm)

## แปลงฟิลด์วันที่

ผู้ใช้มักจะมีข้อมูลวันที่ที่ไม่ได้จัดเก็บไว้ในรูปแบบวันที่แบบเนทีฟ เช่น วันที่อาจเป็นสตริงหรือเป็นเวลาประทับแบบตัวเลข คุณสามารถใช้ฟังก์ชัน DATEPARSE ได้หากข้อมูลของคุณรองรับ ซึ่งฟังก์ชันนี้สามารถใช้งานได้สำหรับการเชื่อมต่อไฟล์ Microsoft Excel และไฟล์ข้อความที่ไม่ใช่แบบเก่า, MySQL, Oracle, PostgreSQL และแหล่งข้อมูลการแยกข้อมูล Tableau ไม่เช่นนั้น ให้งแยกวิเคราะห์ฟิลด์เป็นสตริงวันที่ เช่น “2012-01-01” แนะนำให้ใช้สตริง ISO จะดีกว่าเนื่องจากสตริงประเภทนี้ไม่ได้เจาะจงตำแหน่ง จากนั้นส่งต่อค่าไปยังฟังก์ชัน DATE หากข้อมูลที่กำลังสร้างอยู่เป็นฟิลด์ตัวเลข การแปลงข้อมูลให้เป็นสตริงก่อนแล้วจึงแปลงเป็นวันที่นั้นถือเป็นวิธีที่ไม่มีประสิทธิภาพ ซึ่งจะดีกว่ามากหากปล่อยให้ข้อมูลไว้เป็นตัวเลขแล้วใช้ DATEADD กับค่าสัญพจน์วันที่ในการดำเนินการคำนวณ ประสิทธิภาพการทำงานที่เพิ่มขึ้นมานี้อาจส่งผลเป็นอย่างมากกับชุดข้อมูลขนาดใหญ่ หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับฟังก์ชันเหล่านี้ โปรดดู [ฟังก์ชันวันที่](https://help.tableau.com/v0.0/pro/desktop/th-th/functions_functions_date.htm)

## ใช้คำสั่งตรรกะ CASE

เมื่อทำงานกับคำสั่งตรรกะที่ซับซ้อน คำสั่ง CASE อาจทำงานได้เร็วกว่าคำสั่ง IF หรือ ELSEIF

อย่าลืมว่า ELSEIF นั้นเร็วกว่า ELSE IF เนื่องจาก IF ที่ซ้อนเข้ามาจะประมวลผลคำสั่ง IF ที่สองแทนที่จะรวมเข้าไปในการประมวลผลคำสั่งแรก

หากต้องการข้อมูลเพิ่มเติม โปรดดูเอกสารประกอบเรื่อง[การออกแบบเวิร์กบุ๊กที่มีประสิทธิภาพ](https://www.tableau.com/th-th/learn/whitepapers/designing-efficient-workbooks)

## การวัดผลแบบรวม

หากมุมมองที่คุณสร้างทำงานช้า อย่าลืมตรวจสอบให้แน่ใจว่าคุณกำลังใช้การวัดผลแบบรวม เพราะหากเป็นข้อมูลแบบไม่รวม คุณอาจกำลังพยายามดูข้อมูลหลายแถวพร้อมกันอยู่ คุณสามารถลดจำนวนแถวได้ด้วยการรวมข้อมูล โดยทำได้ด้วยการเลือก การวิเคราะห์ \> การวัดผลแบบรวม

## เคล็ดลับการคำนวณ

คุณสามารถปรับปรุงประสิทธิภาพของการคำนวณได้หลากหลายวิธี

- การแยกความต่างของค่านับเป็นหนึ่งในประเภทการรวมที่ช้าที่สุดในแทบทุกแหล่งข้อมูล ควรใช้การรวม COUNTD ให้น้อยที่สุด
- การใช้พารามิเตอร์ที่สามารถส่งผลกระทบได้เป็นวงกว้าง (เช่น ในคำสั่ง SQL แบบปรับแต่งเอง) อาจส่งผลต่อประสิทธิภาพการแคชได้
- การกรองในการคำนวณที่ซับซ้อนอาจส่งผลให้ดัชนีในข้อมูลทั้งหมดหายไป
- ฟังก์ชันสคริปต์อย่าง RAWSQL และ SCRIPT\_\* สำหรับการรวมกับบริการภายนอกอาจทำงานช้า โดยเฉพาะอย่างยิ่งเมื่อมีค่าจำนวนมากที่จำเป็นต้องส่งกลับไปมาจากเซิร์ฟเวอร์ DBMS/R
- ใช้ NOW เฉพาะเมื่อคุณจำเป็นต้องใช้รายละเอียดในระดับเวลาประทับ ใช้ TODAY สำหรับการคำนวณระดับวันที่
- อย่าลืมว่าการคำนวณพื้นฐานทั้งหมดจะถูกส่งต่อไปยังข้อมูลเบื้องหลัง แม้แต่การคำนวณสัญพจน์อย่างสตริงป้ายกำกับก็ตาม หากคุณจำเป็นต้องสร้างป้ายกำกับ (เช่น สำหรับส่วนหัวของคอลัมน์) และข้อมูลของคุณมีขนาดใหญ่มาก ให้สร้างแหล่งข้อมูลข้อความที่ง่าย/ไฟล์ Excel ที่มีระเบียนเพียงรายการเดียวสำหรับเก็บป้ายกำกับเหล่านั้น เพื่อที่จะได้ไม่เพิ่มภาระให้แหล่งข้อมูลขนาดใหญ่