วันจันทร์ที่ 11 กรกฎาคม พ.ศ. 2554

Aggregation Design via Aggregation Manager

ได้ทำการ Research เืรื่องการเพิ่มประสิทธิภาพของ MDX Query
และได้พบว่าใน (VS) SQL Server 2005 ไม่มีเครื่องที่ช่วยสร้าง Aggregation เหมือนกับใน SQL 2008
เช่นใน Cube Design 2008 มี Tab Aggregations , Dimension Design มี Attribute relationship
ซึ่งทำให้การทำงานสะดวกขึ้นมาก

และนอกจากนั้นขอแนะนำเครื่องมือที่ดีมาก (ฟรี)  ตัวหนึ่งคือ Aggregation Manager
เครื่องมือตัวนี้จะช่วยให้เราสามารถสร้าง Aggregation ขึ้นมาและ Assign ไปยัง Partitions ที่มีได้
(แต่คิดว่ายังมี Bug อยู่ คือการ Assign Aggregation ไปยังหลาย Partitions ยังไม่สามารถทำได้ ทังที่มีเมนูการทำงานนี้อยู่  แก้ปัญหาโดยใช้ Default Tool ของ SQL Server Assign แทน)

และได้พบว่าจากเดิมที่ระบบสร้าง Aggregation ไว้ให้นั้นไม่ได้มีการใช้งานจริงๆจากผู้ใช้เลย
เนื่องจากระบบสร้าง Aggregation ไว้เฉพาะ Height Level ของข้อมูล ซึ่งไม่ตรงตามความต้องการจริง
ทำให้เมื่อมีการ Query ข้อมูลจะไม่เกิด Event "Get Data From Aggregation" ขึ้นเลย ซึ่งตรงนี้ผิดวัตถุประสงค์ของ OLAP Cube แน่นอน  
จากนั้นจึงได้ ทำการ Design Aggregation ให้ตรงความต้องการของผู้ใช้งาน และ Assign ไปยัง Partitions ต่างๆ
แล้วทำการ Process โดยการ Process Aggregation ที่ได้ Design นั้นไม่จำเป็นต้อง Process FULL
เพียงแค่ Process Index เท่านั้น และเมื่อทำการ Monitor Event จาก SQL Server profile พบว่า Query เดียวกันให้ผลที่แตกต่างกัน ก่อน/หลัง ReDesign Aggregation  โดยหลังจาก ReDesign Query ทำงานได้เร็วขึ้นมากเนื่องจากสามารถดึงข้อมูลจาก Aggregation ได้เลย ไม่จำเป็นต้องไปดึงข้อมูลจาก FACT Data อีก

จุดสังเกตที่พึงระวัง จากที่ได้ทดสอบกับการใชงานจริง
การ Process Increment กับ Aggregation ที่มีใน Measures Group จำเป็นที่จะต้อง Process Index ใหม่ทุกครั้ง
เพราะเมื่อทดสอบ Process Increment แต่ไม่ได้ Process Index จะไม่พบ Event "Get Data From Aggregation"
ซึ่งจุดนี้ยังไม่เคลียร์ 100% แต่คาดว่าระบบน่าจะต้องทำการ Re Index data ใหม่หลังจากมีการ Add New data เข้าระบบ


http://bidshelper.codeplex.com/wikipage?title=Aggregation%20Manager&ProjectName=bidshelper

ไม่มีความคิดเห็น:

แสดงความคิดเห็น