แสดงบทความที่มีป้ายกำกับ ตัวอย่าง แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ ตัวอย่าง แสดงบทความทั้งหมด

วันพุธที่ 10 กุมภาพันธ์ พ.ศ. 2553

MDX Query : Improve performance via "NonEmptyCrossjoin"

Returns a set that contains the cross product of one or more sets, excluding empty tuples and tuples without associated fact table data.

ค่าที่ได้จากการใช้ function นี้จะเป็นค่าที่ไม่รวมค่าว่างจากการ Cross join dimension
ซึ่งจะทำให้ QueryPerformance ดีขึ้นอย่างเห็นได้ชัด
ตัวอย่างจาก Adventure Works (OLAP)

Example 1 เป็นการทำ Dimension Cross ปกติ (Dimensions Crossjoin )

SELECT [Measures].[Order Count] ON COLUMNS,
CROSSJOIN([Sales Territory].[Sales Territory Country].[Sales Territory Country].ALLMEMBERS ,[Product].[Category].[Category].ALLMEMBERS)
ON ROWS
FROM [Adventure Works]



Figure 1 : Result for crossjoin


Example 2 เป็นการทำ NonEmptyCrossjoin Dimension

SELECT [Measures].[Order Count] ON COLUMNS,
NONEMPTYCROSSJOIN([Sales Territory].[Sales Territory Country].[Sales Territory Country].ALLMEMBERS ,[Product].[Category].[Category].ALLMEMBERS)
ON ROWS
FROM [Adventure Works]



Figure 2 : Result for NonEmptyCrossjoin

จากตัวอย่าง คือการ Query ข้อมูลการ Order สินค้า ตามประเทศ และตามประเภทสินค้า
จะเห็นได้ว่าใน Query แรกจะมีค่า Null ออกมาด้วย (ในกรอบสีแดง)
ซึ่งหมายความว่าใน Australia ไม่มีการสั่งสินค้าประเภท Motocycle นั่นเอง
เปรียบเทียบกับตัวอย่างที่สองที่จะไม่มีค่า Null ออกมา

วันศุกร์ที่ 27 พฤศจิกายน พ.ศ. 2552

MDX Query : Dimension Usage with(out) summary row

MDX Query Exclude summary row.
ปกติเวลาเราสร้าง MDX Query ขึ้นมา คงไม่มีใครจะพิมพ์เองทั้งหมดนะครับ เนื่องจากมี Tools ช่วยอยู่แล้ว
ทำให้เราสามารถ Drag & Drop Object ได้โดยสะดวก
บทความนี้จะมี Trick เล็ก ๆ น้อย ๆ เกี่ยวกับการใช้งาน Dimension ใน MDX Query ครับ
โดยจะขอยกตัวอย่างจาก Adventure Work อีกเช่นเคย
ซึ่งตามหัวข้อของบทความก็คือ การ Select ข้อมูลโดยมีและไม่มี Summary record ครับ
ให้สังเกตส่วนที่ Hiligh นะครับเพราะเป็น Level ของ Dimension ส่วนที่แตกต่างกัน
เมื่อนำมาใช้ก็จะได้ผลตามข้อ 1 และ 2 ซึ่งจะเป็นประโยชน์ในการทำ Report ต่อไป

1 MDX Query with summary record
SELECT {[Measures].[Internet Order Quantity],[Measures].[Internet Sales Amount]} on 0
,[Sales Territory].[Sales Territory Country].MEMBERS on 1
FROM [Adventure Works]
WHERE
[Sales Territory].[Sales Territory Group].&[Europe]







2 MDX Query without summary record
SELECT {[Measures].[Internet Order Quantity],[Measures].[Internet Sales Amount]} on 0
,[Sales Territory].[Sales Territory Country].[Sales Terriotory Country].MEMBERS on 1
FROM [Adventure Works]
WHERE
[Sales Territory].[Sales Territory Group].&[Europe]