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

Impact of HierarchyUniqueNameStyle in Reporting Service parameters design

Determines how unique names are generated for hierarchies that are contained within the CubeDimension.

บทความนี้จะกล่าวถึงการ Design CUBE ในส่วนที่เกี่ยวกับ Dimension ซึ่งกระทบต่อการ Desing report
ในการ Desing Cube นั้นจะต้องมี Dimension เข้ามาเกี่ยวข้องด้วย ซึ่งจะมี Property ให้ Set มากมาย
แต่ปัญหาที่เคยพบเกี่ยวกับ Property ตัวหนึ่งคือ "HierarchyUniqueNameStyle"
Property ตัวนี้ประกอบด้วย
  • IncludeDimensionName (รวมชื่อ Dimension ใน Hierarchies)
  • ExcludeDimensionName (ไม่รวมชื่อ Dimension ใน Hierarchies)
ปกติแล้ว Default value คือ IncludeDimensionName อยู่แล้ว ซึ่งควรจะเป็นเช่นนั้น
ไม่แนะนำให้ Set เป็น ExcludeDimensionName เพราะจะมีปัญหาตามมาหากต้องการใช้
Front end tool ในการ Browse data
ตัวอย่างปัญหาที่เคยพบเกี่ยวกับ Property ตัวนี้ซึ่งกระทบกับ Report ที่เคย Design ไว้
- Cube ถูก Design ไว้ให้มีบาง Dimension property "HierarchyUniqueNameStyle" มีค่าเป็น ExcludeDimensionName
- การ Design Report มีการสร้าง Parameters ให้ User เลือก โดยมีการอ้างถึง Dimension เช่น Dimension Products (Dimension Products นั้นถูก Set ให้เป็น ExcludeDimensionName )
- มีความต้องการใช้ Front end tool (Analyzer 2007 : Strategy Companion) เชื่อมต่อกับ CUBE แต่เกิดปัญหาว่าไม่สามารถ Browse dimensions ที่มีการ Set property "HierarchyUniqueNameStyle" เป็นแบบ ExcludeDimensionName ได้
- เมื่อแก้ไข Cube property "HierarchyUniqueNameStyle" ให้เป็น IncludeDimensionName ปรากฎว่า Report ที่เคย Design ไว้นั้นทำงานผิดพลาดทั้งหมด กล่าวคือ Parameter ที่เคยอ้างถึง Dimension ที่เคยเป็น ExcludeDimensionName จะไม่แสดงข้อมูล
นอกจากนั้นความแตกต่างของ Property นี้จะเห็นได้จากตอนที่เขียน MDX Query
หาก Drag & Drop dimension attribue ลงใน Query plane text ตามตัวอย่าง

1 Cube Dimension property --> IncludeDimensionName
[Dim_Product].[Category].[Category]
2 Cube Dimension property --> ExcludeDimensionName
[Category].[Category]
How to set "HierarchyUniqueNameStyle" in cube designer
-Open cube structure
-Select dimension to set property
-Property appear in property pallet.

figure1 : HierarchyUniqueNameStyle in Cube Designer

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 ออกมา

วันอังคารที่ 26 มกราคม พ.ศ. 2553

How to identify your SQL Server version and edition

วิธี ตรวจสอบ SQL Server Version
How to identify your SQL Server version and edition
------------------------------------------------------
ใช้ Query นี้ในการตรวจสอบได้เลยครับ

SELECT SERVERPROPERTY('productversion') as Version, SERVERPROPERTY ('productlevel') as ServicePack, SERVERPROPERTY ('edition') as ServerEdition


ตัวอย่าง
2005.90.1399 SQL Server 2005 RTM
2005.90.2047 SQL Server 2005 Service Pack 1
2005.90.3042 SQL Server 2005 Service Pack 2
2005.90.4035 SQL Server 2005 Service Pack 3

2008R2 10.50.4000.0 Service Pack2
2008    10.0.1600.22    RTM    Enterprise Edition (64-bit)
2008    10.0.2531.0      Service Pack1


The standard product version format for SQL Server is MM.nn.bbbb.rr where each segment is defined as:
MM - Major version
nn - Minor version
bbbb - Build number
rr - Build revision number



SQL Server Analysis Service SP3 Fixed

FIX: A SSAS 2005 or SSAS 2008 server crashes when you run a Multidimensional Expressions query that uses the CDBL function in a calculated member

Event Type: Error
Event Source: .NET Runtime 2.0
Error ReportingEvent
Category: None
Event ID: 1000
Date: 1/12/2010
Time: 4:20:17 P
MUser: N/A
Computer: OLAPSERVER

Description:Faulting application msmdsrv.exe, version 9.0.4035.0, stamp 492b1bb9, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51cdd, debug? 0, fault address 0x0000000000027ded.

จากปัญหาที่พบจากการ Install Service pack3 ใน MSSQL 2005 นั้น
ทำให้ MDX Query ที่เคยเขียนไว้ในรายงานทำให้ระบบ Crash กล่าวคือ
เมื่อทำการ Run Query ดังกล่าวจะทำให้ SSAS Service down เลยทีเดียว
ได้ค้นหาสาเหตุอยู่ครึงวันจึงได้ไปเจอว่า มันคือ BUG ของ Service Pack3 นั่นเอง - -"
(เนื่องจาก MDX Query ที่ได้เคยเขียนไว้ ณ ขณะนั้นใช้ Service Pack2)

วิธีการแก้ไขให้ไป Download ตัว Fix จากเว็บ Microsoft แล้วทำการ Install ครับ
Document : http://support.microsoft.com/default.aspx/kb/977309
Download : http://support.microsoft.com/hotfix/KBHotfix.aspx?kbnum=976951&kbln=en-us
เลือก File ให้ตรงกับ OS / Version ด้วยนะครับ

วันอังคารที่ 12 มกราคม พ.ศ. 2553

The request failed or the service did not respond in a timely fashion

The request failed or the service did not respond in a timely fashion

In this case , SQL Server Analysis services is stoped by MDX Query.
Whitin SQL Server Service Pack3 bug.
That issue when runing Multidimensional Expressions query(MDX) that uses the CDBL function in a calculated member.

In this scenario, the Analysis Services server may crash. Additionally, the following events are logged in the Application log:


Case 1
Event Type: Error
Event Source: MSSQLServerOLAPService
Event Category: (256)
Event ID: 22

Description:The description for Event ID ( 22 ) in Source ( MSSQLServerOLAPService ) cannot be found. The local computer may not have the necessary registry information or message DLL files to display messages from a remote computer. You may be able to use the /AUXSOURCE= flag to retrieve this description; see Help and Support for details. The following information is part of the event: Internal error: An unexpected exception occured..


Case2
Event Type: Error
Event Source: .NET Runtime 2.0 Error Reporting
Event Category: None
Event ID: 1000

Description:Faulting application msmdsrv.exe, version 9.0.4035.0, stamp 492b1bb9, faulting module kernel32.dll, version 5.2.3790.4480, stamp 49c51cdd, debug? 0, fault address 0x0000000000027ded.


In my case, Analysis Service is stoped and can not restart .
The error mesage always popup "The request failed or the service did not respond in a timely fashion " that make me confuse.
To restart server , that's not a good solutions.
To solve facing problem just do only End process dw20.exe
and then Analysis service can start correctly.
Good luck.