dbTalk Databases Forums  

Functionality question regarding calculated members in AS2000 vs. 2005

microsoft.public.sqlserver.olap microsoft.public.sqlserver.olap


Discuss Functionality question regarding calculated members in AS2000 vs. 2005 in the microsoft.public.sqlserver.olap forum.



Reply
 
Thread Tools Display Modes
  #1  
Old   
Lars-Erik Aabech
 
Posts: n/a

Default Functionality question regarding calculated members in AS2000 vs. 2005 - 09-13-2005 , 05:42 AM






Hi!

We have a solution using AS2000 for some rather unorthodox cubes. There's
calculated members on the "atomic" level which in turn are summarized on
higher levels, so the only real gain we get from AS is pivoting. The
performance is more or less useless.
I'm sliding more and more towards a rewrite using only SQL, but this
wouldn't give the kind of functionality/performance we're after either.

Is there any way to make either 2000 or 2005 pre-calculate the results of
calculated members? (Read: should I start learning 2005 yesterday?)

Here's a sample of one of my calculated members:

IIF([Roles].CurrentMember.Name = "All",
IIF(NOT IsLeaf([Persons].CurrentMember),
Avg(CROSSJOIN(Descendants([Persons].CurrentMember, 999, LEAVES),
[Roles].CurrentMember.Children), [Measures].Match),
Avg([Roles].CurrentMember.Children, [Measures].[UncriticalMatch])
),
[Measures].[UncriticalMatch]
)

UncriticalMatch is a calculated member doing measure1 / measure2.
Persons is a parent-child dimension with leaves on any level. There's also a
dimension for departments.

This cube is impossible to use on higher levels, as it always has to run
down to the bottom and summarize for each level at runtime.

Hope someone has a miracle solution... :P

Lars-Erik



Reply With Quote
  #2  
Old   
Peter Yang [MSFT]
 
Posts: n/a

Default RE: Functionality question regarding calculated members in AS2000 vs. 2005 - 09-14-2005 , 10:22 PM






Hello Lars,

As I know, both sql 2000/2005 does not support calculated member
pre-calculate. You may want to go sql 2005 newsgroup for more information
about this:

http://communities.microsoft.com/new...lserver2005&sl
cid=us

In SQL Server 2000 Analysis Services a property is available for all
calculated members which allows the evaluation to be skipped. This property
is called Non Empty Behavior and allows you to select a base measure which
this calculated member relies on. If this base measure is Empty then the
evaluation of this calculated member is skipped. Thus, if you have a
calculated member "Sales + 10%" with the formula "UnitSales * 1.1" you know
that it will be empty if the base measure of UnitSales is empty. Setting
the Non Empty Behavior value to UnitSales will prevent the evaluation and
calculation of this calculated member.

Hope this is helpful.

Best Regards,

Peter Yang
MCSE2000/2003, MCSA, MCDBA
Microsoft Online Partner Support

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

================================================== ===



This posting is provided "AS IS" with no warranties, and confers no rights.


--------------------
Quote:
From: "Lars-Erik Aabech" <larserik (AT) newsgroup (DOT) nospam
Subject: Functionality question regarding calculated members in AS2000
vs. 2005
Date: Tue, 13 Sep 2005 12:42:27 +0200
Lines: 35
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-RFC2646: Format=Flowed; Original
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
Message-ID: <up0Qd#EuFHA.596 (AT) TK2MSFTNGP12 (DOT) phx.gbl
Newsgroups: microsoft.public.sqlserver.olap
NNTP-Posting-Host: 213.160.225.168
Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
Xref: TK2MSFTNGXA01.phx.gbl microsoft.public.sqlserver.olap:14443
X-Tomcat-NG: microsoft.public.sqlserver.olap

Hi!

We have a solution using AS2000 for some rather unorthodox cubes. There's
calculated members on the "atomic" level which in turn are summarized on
higher levels, so the only real gain we get from AS is pivoting. The
performance is more or less useless.
I'm sliding more and more towards a rewrite using only SQL, but this
wouldn't give the kind of functionality/performance we're after either.

Is there any way to make either 2000 or 2005 pre-calculate the results of
calculated members? (Read: should I start learning 2005 yesterday?)

Here's a sample of one of my calculated members:

IIF([Roles].CurrentMember.Name = "All",
IIF(NOT IsLeaf([Persons].CurrentMember),
Avg(CROSSJOIN(Descendants([Persons].CurrentMember, 999, LEAVES),
[Roles].CurrentMember.Children), [Measures].Match),
Avg([Roles].CurrentMember.Children, [Measures].[UncriticalMatch])
),
[Measures].[UncriticalMatch]
)

UncriticalMatch is a calculated member doing measure1 / measure2.
Persons is a parent-child dimension with leaves on any level. There's
also a
dimension for departments.

This cube is impossible to use on higher levels, as it always has to run
down to the bottom and summarize for each level at runtime.

Hope someone has a miracle solution... :P

Lars-Erik





Reply With Quote
  #3  
Old   
Lars-Erik Aabech
 
Posts: n/a

Default Re: Functionality question regarding calculated members in AS2000 vs. 2005 - 09-15-2005 , 03:47 AM



OK, thanks. That might help a bit.

L-E

"Peter Yang [MSFT]" <petery (AT) online (DOT) microsoft.com> wrote

Quote:
Hello Lars,

As I know, both sql 2000/2005 does not support calculated member
pre-calculate. You may want to go sql 2005 newsgroup for more information
about this:

http://communities.microsoft.com/new...lserver2005&sl
cid=us

In SQL Server 2000 Analysis Services a property is available for all
calculated members which allows the evaluation to be skipped. This
property
is called Non Empty Behavior and allows you to select a base measure which
this calculated member relies on. If this base measure is Empty then the
evaluation of this calculated member is skipped. Thus, if you have a
calculated member "Sales + 10%" with the formula "UnitSales * 1.1" you
know
that it will be empty if the base measure of UnitSales is empty. Setting
the Non Empty Behavior value to UnitSales will prevent the evaluation and
calculation of this calculated member.

Hope this is helpful.

Best Regards,

Peter Yang
MCSE2000/2003, MCSA, MCDBA
Microsoft Online Partner Support

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

================================================== ===



This posting is provided "AS IS" with no warranties, and confers no
rights.


--------------------
| From: "Lars-Erik Aabech" <larserik (AT) newsgroup (DOT) nospam
| Subject: Functionality question regarding calculated members in AS2000
vs. 2005
| Date: Tue, 13 Sep 2005 12:42:27 +0200
| Lines: 35
| X-Priority: 3
| X-MSMail-Priority: Normal
| X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
| X-RFC2646: Format=Flowed; Original
| X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
| Message-ID: <up0Qd#EuFHA.596 (AT) TK2MSFTNGP12 (DOT) phx.gbl
| Newsgroups: microsoft.public.sqlserver.olap
| NNTP-Posting-Host: 213.160.225.168
| Path: TK2MSFTNGXA01.phx.gbl!TK2MSFTNGP08.phx.gbl!TK2MSFT NGP12.phx.gbl
| Xref: TK2MSFTNGXA01.phx.gbl microsoft.public.sqlserver.olap:14443
| X-Tomcat-NG: microsoft.public.sqlserver.olap
|
| Hi!
|
| We have a solution using AS2000 for some rather unorthodox cubes.
There's
| calculated members on the "atomic" level which in turn are summarized on
| higher levels, so the only real gain we get from AS is pivoting. The
| performance is more or less useless.
| I'm sliding more and more towards a rewrite using only SQL, but this
| wouldn't give the kind of functionality/performance we're after either.
|
| Is there any way to make either 2000 or 2005 pre-calculate the results
of
| calculated members? (Read: should I start learning 2005 yesterday?)
|
| Here's a sample of one of my calculated members:
|
| IIF([Roles].CurrentMember.Name = "All",
| IIF(NOT IsLeaf([Persons].CurrentMember),
| Avg(CROSSJOIN(Descendants([Persons].CurrentMember, 999, LEAVES),
| [Roles].CurrentMember.Children), [Measures].Match),
| Avg([Roles].CurrentMember.Children,
[Measures].[UncriticalMatch])
| ),
| [Measures].[UncriticalMatch]
| )
|
| UncriticalMatch is a calculated member doing measure1 / measure2.
| Persons is a parent-child dimension with leaves on any level. There's
also a
| dimension for departments.
|
| This cube is impossible to use on higher levels, as it always has to run
| down to the bottom and summarize for each level at runtime.
|
| Hope someone has a miracle solution... :P
|
| Lars-Erik
|
|
|




Reply With Quote
  #4  
Old   
Darren Gosbell
 
Posts: n/a

Default Re: Functionality question regarding calculated members in AS2000 vs. 2005 - 09-17-2005 , 07:08 AM



If all you are doing is to evaluate an average you might be able to take
advantage of the following trick.

1. Create a second real measure on your cube which uses a COUNT
aggregation. Call it something like [Measures].[UncriticalMatchCount]

2. Change your average measure to be
[Measures].[UncriticalMatch] / [Measures].[UncriticalMatchCount]

An average is just a sum of the members divided by the count. In this
way AS2k can pre-aggregate the sum and the count measures and you should
get pretty good performance.

--
Regards
Darren Gosbell [MCSD]
<dgosbell_at_yahoo_dot_com>
Blog: http://www.geekswithblogs.net/darrengosbell

In article <#GT#hIduFHA.3224 (AT) TK2MSFTNGP10 (DOT) phx.gbl>,
larserik (AT) newsgroup (DOT) nospam says...
Quote:
OK, thanks. That might help a bit.

L-E

"Peter Yang [MSFT]" <petery (AT) online (DOT) microsoft.com> wrote in message
news:OJehsSauFHA.3020 (AT) TK2MSFTNGXA01 (DOT) phx.gbl...
Hello Lars,

As I know, both sql 2000/2005 does not support calculated member
pre-calculate. You may want to go sql 2005 newsgroup for more information
about this:

http://communities.microsoft.com/new...lserver2005&sl
cid=us

In SQL Server 2000 Analysis Services a property is available for all
calculated members which allows the evaluation to be skipped. This
property
is called Non Empty Behavior and allows you to select a base measure which
this calculated member relies on. If this base measure is Empty then the
evaluation of this calculated member is skipped. Thus, if you have a
calculated member "Sales + 10%" with the formula "UnitSales * 1.1" you
know
that it will be empty if the base measure of UnitSales is empty. Setting
the Non Empty Behavior value to UnitSales will prevent the evaluation and
calculation of this calculated member.

Hope this is helpful.

Best Regards,

Peter Yang
MCSE2000/2003, MCSA, MCDBA
Microsoft Online Partner Support

When responding to posts, please "Reply to Group" via your newsreader so
that others may learn and benefit from your issue.

================================================== ===



This posting is provided "AS IS" with no warranties, and confers no
rights.


--------------------
| From: "Lars-Erik Aabech" <larserik (AT) newsgroup (DOT) nospam
| Subject: Functionality question regarding calculated members in AS2000
vs. 2005


Reply With Quote
Reply




Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off



Powered by vBulletin Version 3.5.3
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.