แสดงบทความที่มีป้ายกำกับ Enhance Performance MDX Query แสดงบทความทั้งหมด
แสดงบทความที่มีป้ายกำกับ Enhance Performance MDX Query แสดงบทความทั้งหมด

วันพุธที่ 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 ออกมา