แนวทางปฏิบัติที่ดีที่สุดสำหรับการออกแบบรายงาน
หัวข้อนี้จะอธิบายถึงปัจจัยหลักที่ต้องพิจารณาเมื่อใช้ Application Studio ในการเขียนรายงานบนคิวบ์ OLAP
ข้อควรพิจารณาเกี่ยวกับส่วนหน้า
ตารางนี้แสดงข้อควรพิจารณาหลักสำหรับการออกแบบรายงานส่วนหน้า:
ข้อควรพิจารณา | คำอธิบาย |
---|---|
รายงานของคุณมีไฮเปอร์บล็อกที่ซ้อนกันหรือไม่ | รายงานที่อิงตามสไลซ์และที่มีการกรองไฮเปอร์บล็อก เช่น เพื่อไม่รวมค่าโมฆะ จะมีประสิทธิภาพดีกว่า มีเส้นโค้งการเรียนรู้ที่เชื่อมโยงกับการใช้สไลซ์และยังฟังก์ชันที่ต้องการบางอย่าง แต่ฟังก์ชันที่มีอยู่ก็ตอบสนองกรณีการใช้งานได้ 80% |
รายงานจำเป็นต้องมีการเลื่อนแนวตั้งใช่หรือไม่ | หากใช่ ให้รวมส่วนขยายเว็บการแบ่งหน้าในส่วนท้ายรายงานของคุณ ซึ่งจะช่วยปรับปรุงประสบการณ์ผู้ใช้และประสิทธิภาพการใช้งาน |
รายงานมีการใช้การจัดรูปแบบตามเงื่อนไขใช่หรือไม่ | การจัดรูปแบบตามเงื่อนไขเป็นคุณลักษณะที่มีประสิทธิภาพ แต่ควรใช้เท่าที่จำเป็น เนื่องจากจะส่งผลต่อประสิทธิภาพการทำงานเมื่อมีการประเมินเงื่อนไข คุณจะหลีกเลี่ยงการจัดรูปแบบตามเงื่อนไข เมื่อคุณใช้รูปแบบตัวเลขและอาศัยรูปแบบตัวเลขที่กำหนดไว้ในฐานข้อมูล Application Studio จัดคลัสเตอร์คำขอข้อมูลของสูตรที่ส่งไปยังฐานข้อมูล OLAP ผลลัพธ์คือคิวรีโดยรวมเพียงรายการเดียวแทนที่จะเป็นคิวรีเซลล์เดียวหลายรายการ คิวรีแบบมีการจัดคลัสเตอร์จะเร็วกว่าการเข้าถึงแบบเซลล์เดียว สูตรอ่านข้อมูลในรูปแบบเงื่อนไขและการข้ามรายงานไม่สามารถจัดคลัสเตอร์ได้ โดยจะมีการขอให้เป็นการร้องขอเซลล์เดียวเสมอ |
รายงานสไตล์ชีตได้รับการออกแบบมาอย่างดีใช่หรือไม่ | ให้คำนึงถึงความเรียบง่ายเมื่อพัฒนาสไตล์ชีตใหม่ และหากเป็นไปได้ อย่าเพิ่มเนื้อหาในสไตล์ชีตที่มีอยู่แล้ว จำนวนสไตล์จะเพิ่มขนาดของรายงาน |
คุณได้ระบุการเลือกเริ่มต้นสำหรับเอนทิตีรายงานแล้วหรือไม่ | รายงานจะโหลดเร็วขึ้น หากมีการจัดเก็บเอนทิตีที่ผู้ใช้มองเห็นล่าสุดไว้ ตัวอย่างเช่น หากรายงานโหลดในระดับเอนทิตีทั้งหมด ก็จะต้องดึงข้อมูลจำนวนมากขึ้น และรายงานก็จะใช้เวลาโหลดมากขึ้น |
คุณกำลังใช้การควบคุมแบบไร้สถานะ เช่น ออบเจ็กต์ค้นหา แทนการควบคุมที่อิงตามมุมมองรายการใช่หรือไม่ | การควบคุมที่อิงตามมุมมองรายการ เช่น กล่องคำสั่งผสม จะเรียกข้อมูลรายการองค์ประกอบในเวลาที่โหลดรายงาน การควบคุมแบบไม่มีสถานะจะไม่เรียกข้อมูลรายการองค์ประกอบ ซึ่งทำให้โหลดได้เร็วขึ้น |
คุณทดสอบรายงานของคุณอย่างละเอียดถี่ถ้วนใช่หรือไม่ | คุณสามารถสร้างรายงานที่เชื่อมโยงสตริงเพื่อให้ได้รหัสองค์ประกอบมา แต่หากคุณส่งการร้องขอไปยังเซิร์ฟเวอร์ OLAP สำหรับองค์ประกอบที่ไม่มีอยู่ คุณอาจเสี่ยงที่จะเกิดข้อผิดพลาดและหมดเวลาได้ การทดสอบควรคำนึงถึงการตั้งค่าความปลอดภัยของผู้ใช้ปลายทางเสมอ |
ตัวกรองรายการ | ตัวกรองบางประเภทจะช้ากว่าประเภทอื่น เช่น ตัวกรองคุณลักษณะจะช้ากว่าตัวกรองค่า โดยทั่วไปตัวกรองจะช้ากว่าการเลือกโครงสร้าง หลีกเลี่ยงพื้นที่ข้อมูลขนาดใหญ่ในตัวกรอง ยิ่งคุณเลือกองค์ประกอบต่อมิติมากขึ้นเท่าใด ตัวกรองก็จะยิ่งทำงานช้าลงเท่านั้น |
การดำเนินการส่วนกลาง | ลองพิจารณาใช้การดำเนินการส่วนกลางเพื่อใช้เวลาการคำนวณจากรายงานเดี่ยว การดำเนินการส่วนกลางจะทำงานระหว่างที่ผู้ใช้เข้าสู่ระบบ หลังจากสร้างรุ่นที่เก็บแล้ว และก่อนที่จะสร้างเอ็นจิ้นใดๆ ค่าตัวแปรส่วนกลางได้รับตั้งค่าแล้วก่อนที่รายงานใดก็ตามจะเริ่มต้นโหลด |
ตัวแปรรายงาน | หลีกเลี่ยงการมีสตริงขนาดใหญ่ในตัวแปร |
ข้อควรพิจารณาด้านส่วนหลัง สภาพแวดล้อม และความสัมพันธ์ระหว่างบุคคล
ในโครงการที่ประสบความสำเร็จนั้น จะมีลูปข้อเสนอแนะระหว่างผู้พัฒนารายงานกับผู้เขียนคิวบ์ การออกแบบคิวบ์ที่ไม่ดีอาจเป็นปัจจัยสำคัญที่สุดที่ทำให้ประสิทธิภาพลดลง ตารางนี้แสดงให้เห็นปัจจัยสำคัญที่ต้องพิจารณา:
ข้อควรพิจารณา | คำอธิบาย |
---|---|
การเขียนและการทดสอบรายงานด้วยการตั้งค่าข้อมูลที่สมจริง | รายงานที่มิติรวมองค์ประกอบสูงสุด 30 รายการและคิวบ์รวมจุดข้อมูลหลายร้อยรายการอาจทำงานได้ดี แต่ยากต่อการบำรุงรักษา เนื่องจากมีการตั้งค่าข้อมูลขนาดใหญ่ การทดสอบโดยใช้ชุดข้อมูลที่สมจริงถือเป็นสิ่งสำคัญ |
การเขียนกฎ OLAP ที่ถูกต้อง ตัวอย่างกฎที่เขียนไม่ดี: [รายได้] = [ราคา] * [ปริมาณ] หรือ [บัญชี 1] = [Account2} + [Account3] + [Account4] | ทำความคุ้นเคยกับแนวทางปฏิบัติที่ดีที่สุดในการเขียนกฎ OLAP ดูแนวทางในเอกสารออนไลน์ |
มิติที่มีโครงสร้างไม่ดี | พิจารณามิติผลิตภัณฑ์ที่มีองค์ประกอบสำคัญของผลิตภัณฑ์ทั้งหมด แต่มีรายการย่อย 10,000 รายการ ในบางจุด ผู้ใช้มีแนวโน้มที่จะกระตุ้นการร้องขอไปยังเซิร์ฟเวอร์ OLAP ซึ่งจำเป็นต้องดึงข้อมูลองค์ประกอบทั้งหมด และอาจต้องแสดงด้วย ระดับกลางทำให้รายงานตามลำดับขั้นมีประสิทธิภาพมากขึ้น |
จำนวนผู้ใช้งานสูง | หลีกเลี่ยงการเปลี่ยนแปลงมิติในช่วงเวลาทำการเมื่อมีผู้ใช้งานออนไลน์มากที่สุด |
ขาดองค์ประกอบหลักในมิติ เช่น องค์ประกอบรวมของปี | รายงานที่เรียกข้อมูลรายวันในคอลัมน์ที่ซ่อนอยู่เพื่อนำมารวมกันและแสดงเป็นผลรวมตลอดทั้งปีนั้น จะช้ากว่ารายงานที่คำนวณผลรวมในฐานข้อมูล OLAP มาก |
คุณลักษณะการใช้คุณลักษณะในทางที่ผิด | คุณสามารถกำหนดคุณลักษณะและใช้กรองรายงานได้อย่างอิสระ แต่รายงานที่ผ่านการกรองแล้วจะมีประสิทธิภาพน้อยกว่าลำดับขั้นซึ่งจัดกลุ่มองค์ประกอบตามค่าคุณลักษณะที่เป็นไปได้ |
ตรวจสอบให้แน่ใจว่าเซิร์ฟเวอร์ OLAP มี RAM เพียงพอ | OLAP เป็นฐานข้อมูลในหน่วยความจำ การเขียนคิวรีที่ไม่ดีอาจใช้ RAM จำนวนมาก หากเซิร์ฟเวอร์ OLAP ของคุณกำลังแบ่งหน้า คุณอาจพบกับประสิทธิภาพการใช้งานที่ไม่ดี |
อย่าใส่ข้อมูลการทำธุรกรรมลงในคิวบ์ | Infor OLAP ได้รับการปรับปรุงสำหรับการรายงานระดับงบดุล คุณสามารถสร้าง รายงาน ที่ไม่ได้ทำงานโดยไม่ถูก แอปพลิเคชัน ป้องกันได้ ตัวอย่างเช่น คุณสามารถสร้างคิวบ์โดยละเอียดบนไฟล์บรรทัดคำสั่งซื้อได้ แต่มีแนวโน้มว่าจะทำงานได้ไม่มีประสิทธิภาพ |
การเขียนรายงานที่ไม่ดีเป็นการแก้ไขปัญหาระยะสั้น | ต้านทานแรงกดดันต่อโครงการ เพื่อทำสิ่งที่อาจก่อให้เกิดรายงานที่ไม่ได้ประสิทธิภาพ เขียนข้อกังวลของคุณลงไปและเสนอทางเลือกอื่นๆ |
อย่าเก็บเลขศูนย์ไว้ในคิวบ์ของคุณ | ศูนย์เป็นตัวเลขที่ต้องเก็บไว้ในหน่วยความจำ OLAP และต้องมีการประเมินในการคำนวณกฎขณะที่การใช้ค่าว่างเป็นทางเลือกไม่มีความจำเป็น คุณสามารถสร้างกระบวนการ Application Engine ที่สามารถแทนที่เลขศูนย์ในคิวบ์ด้วยค่าว่างได้ |
จุดที่ดีที่สุดในการคำนวณ | ทั้งนี้ขึ้นอยู่กับหลายปัจจัย เช่น ความถี่ที่ต้องการค่าที่คำนวณได้ ต่อไปนี้คือตัวเลือกตัวอย่างสำหรับการคำนวณ โดยเรียงตามลำดับความชอบ:
|
ตั้งค่าองค์ประกอบค่าเริ่มต้นที่เฉพาะเจาะจง | หากคุณไม่ได้เลือกองค์ประกอบค่าเริ่มต้นที่เฉพาะเจาะจงสำหรับมิติแบบลำดับขั้น องค์ประกอบสำคัญ จะได้รับการเลือกเป็นค่าเริ่มต้น จะต้องใช้เวลามากขึ้นในการรีเซ็ตองค์ประกอบค่าเริ่มต้น ขณะนี้องค์ประกอบค่าเริ่มต้นได้รับการตั้งค่าในคุณสมบัติที่ถูกขยายของมิติ |
การใช้งานอินเทอร์เฟซ XML ช้ากว่าการสื่อสารผ่านอินเทอร์เฟซในตัวในเวอร์ชัน 11 | หากต้องเพิ่มความเร็วในการสื่อสาร เราขอแนะนำว่าคุณไม่ควรอ่านค่าด้วยการร้องขอแบบเซลล์เดียว แต่ควรใส่ค่าเหล่านั้นลงในการร้องขอไปยัง OLAP อย่างน้อยหนึ่งรายการ ซึ่งสามารถทำได้ด้วยด้วยการร้องขออ่านคิวบ์โดยการเพิ่มแท็ก CellCoordinate หลายรายการ |
ใช้การแบ่งหน้าฝั่งเซิร์ฟเวอร์ในการสร้างรายงานเพื่อคิวรีเฉพาะค่าที่มองเห็นได้เท่านั้น | การแบ่งหน้าในหน้าไฮเปอร์บล็อกจะอยู่ที่ด้านไคลเอนต์ เซลล์ทั้งหมดเป็นข้อมูลส่งกลับมาจากเซิร์ฟเวอร์ แต่มีการวาดเฉพาะหน้าเท่านั้น
ในรายการ OLAP ให้ใช้ฟังก์ชันเซตย่อยจัดการหน้าบนฝั่งเซิร์ฟเวอร์ ในรายการเชิงสัมพันธ์ ให้ใช้วิธีการขั้นสูงในการคิวรีสร้างเซ็ตย่อย |
กรองคิวรีของคุณเพื่อให้แน่ใจว่าคุณไม่ได้คิวรีองค์ประกอบทั้งหมดจากมิติ | ใช้การตัดค่าว่างเพื่อแสดงเฉพาะเซลล์ที่ได้รับการเติมแล้วเท่านั้น แสดงองค์ประกอบทั้งหมดภายใต้รายการหลักใดก็ตามแทนที่จะเป็นมิติทั้งหมด ลดระดับการขยายเริ่มต้นในสไลซ์และรายการ |
หลีกเลี่ยงการใส่มิติจำนวนมากให้แก่แกน | จำนวนที่เหมาะสมคือสามมิติต่อแกนแถว และหนึ่งมิติต่อแกนคอลัมน์ |