![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
| Dave Wickert |
#3
| |||
| |||
|
|
It's puzzling that the built-in semiadditive functions are performing poorly for you: - If you substitute the AS 2000 style SUM/COUNT for the AverageOfChildren, do you see much better performance? - Dave Wickert indicated in the MSDN Forums post below that LastNonEmpty performed equivalently to Sum or Count measures in the large Project REAL cube, so he might be able to shed some light on that issue: http://forums.microsoft.com/MSDN/Sho...30289&SiteID=1 Dave Wickert Re: Semi-additive measures in AS2005 Standard Edition There was a great deal of internal work done deep inside the runtime engine to support semi-additive measures. If all it involved was writing some fancy mdx it would have been much easier to solve. There is nothing that you can do which will perform anywhere near as fast as the native core aggregation functions. This is one area where Enterprise Edition will be the only way to get good performance at any real scale. I've been using LastNonEmptyChild on a 255GB AS database (see http://www.microsoft.com/sql/bi/ProjectREAL) for all of our inventory data (e.g. quantities on-hand). It is performing virtually the same as sum and count. _-_-_ Dave ------------------------------------------------------------------------ -------- Dave Wickert (MSFT) - Deepak Deepak Puri Microsoft MVP - SQL Server *** Sent via Developersdex http://www.developersdex.com *** |
#4
| |||
| |||
|
|
Hello Deepak The answer is yes. The MDX expression I used to calculate the AverageOfChildren perform better than the built-in function. As Dave Wickert explains, I also would expect that those functions perform nearly the same as Sum and Count. But the fact is they don't. As I said anyone can reproduce the behavior with Adventure Works DW sample database. I also would like to share some measurements I have taken over my customer's cube: - Using Regular Measures (based on Sum and Count): 230 miliseconds (taken from the profiler) - Using the SQL Server built-in function: 150 Seconds - Using the MDX expressions: from 10 to 15 Seconds Every measurement taken under the same conditions. The behavior is consistent in two different machines using the SQL Server Enterprise Edition. And the testing I have done over Adventure Works DW was in my personal Machine running the Developer Edition. Tranks for your interest and help Deepak Mauricio Cotes BI Solutions Manager Intergrupo S.A. "Deepak Puri" <deepak_puri (AT) progressive (DOT) com> wrote in message news:%230zHDNjTGHA.5884 (AT) TK2MSFTNGP14 (DOT) phx.gbl... It's puzzling that the built-in semiadditive functions are performing poorly for you: - If you substitute the AS 2000 style SUM/COUNT for the AverageOfChildren, do you see much better performance? - Dave Wickert indicated in the MSDN Forums post below that LastNonEmpty performed equivalently to Sum or Count measures in the large Project REAL cube, so he might be able to shed some light on that issue: http://forums.microsoft.com/MSDN/Sho...30289&SiteID=1 Dave Wickert Re: Semi-additive measures in AS2005 Standard Edition There was a great deal of internal work done deep inside the runtime engine to support semi-additive measures. If all it involved was writing some fancy mdx it would have been much easier to solve. There is nothing that you can do which will perform anywhere near as fast as the native core aggregation functions. This is one area where Enterprise Edition will be the only way to get good performance at any real scale. I've been using LastNonEmptyChild on a 255GB AS database (see http://www.microsoft.com/sql/bi/ProjectREAL) for all of our inventory data (e.g. quantities on-hand). It is performing virtually the same as sum and count. _-_-_ Dave ------------------------------------------------------------------------ -------- Dave Wickert (MSFT) - Deepak Deepak Puri Microsoft MVP - SQL Server *** Sent via Developersdex http://www.developersdex.com *** |
#5
| |||
| |||
|
|
Thank you for reporting this problem. As mentioned in previous replies on this thread, usually LastNonEmpty and AverageOfChildren would be somewhat slower than Sum, but faster than equivalent hand-crafted MDX. We'll try to investigate the performance differences on AdventureWorks between LastNonEmpty and the MDX calculation you were using, and consider potential improvements in a future product release or service pack. -- Hope this helps Marius "Mauricio Cotes" <mcotes (AT) intergrupo (DOT) com> wrote in message news:Opayf0zTGHA.4340 (AT) TK2MSFTNGP10 (DOT) phx.gbl... Hello Deepak The answer is yes. The MDX expression I used to calculate the AverageOfChildren perform better than the built-in function. As Dave Wickert explains, I also would expect that those functions perform nearly the same as Sum and Count. But the fact is they don't. As I said anyone can reproduce the behavior with Adventure Works DW sample database. I also would like to share some measurements I have taken over my customer's cube: - Using Regular Measures (based on Sum and Count): 230 miliseconds (taken from the profiler) - Using the SQL Server built-in function: 150 Seconds - Using the MDX expressions: from 10 to 15 Seconds Every measurement taken under the same conditions. The behavior is consistent in two different machines using the SQL Server Enterprise Edition. And the testing I have done over Adventure Works DW was in my personal Machine running the Developer Edition. Tranks for your interest and help Deepak Mauricio Cotes BI Solutions Manager Intergrupo S.A. "Deepak Puri" <deepak_puri (AT) progressive (DOT) com> wrote in message news:%230zHDNjTGHA.5884 (AT) TK2MSFTNGP14 (DOT) phx.gbl... It's puzzling that the built-in semiadditive functions are performing poorly for you: - If you substitute the AS 2000 style SUM/COUNT for the AverageOfChildren, do you see much better performance? - Dave Wickert indicated in the MSDN Forums post below that LastNonEmpty performed equivalently to Sum or Count measures in the large Project REAL cube, so he might be able to shed some light on that issue: http://forums.microsoft.com/MSDN/Sho...30289&SiteID=1 Dave Wickert Re: Semi-additive measures in AS2005 Standard Edition There was a great deal of internal work done deep inside the runtime engine to support semi-additive measures. If all it involved was writing some fancy mdx it would have been much easier to solve. There is nothing that you can do which will perform anywhere near as fast as the native core aggregation functions. This is one area where Enterprise Edition will be the only way to get good performance at any real scale. I've been using LastNonEmptyChild on a 255GB AS database (see http://www.microsoft.com/sql/bi/ProjectREAL) for all of our inventory data (e.g. quantities on-hand). It is performing virtually the same as sum and count. _-_-_ Dave ------------------------------------------------------------------------ -------- Dave Wickert (MSFT) - Deepak Deepak Puri Microsoft MVP - SQL Server *** Sent via Developersdex http://www.developersdex.com *** |
#6
| |||
| |||
|
|
Thank you for reporting this problem. As mentioned in previous replies on this thread, usually LastNonEmpty and AverageOfChildren would be somewhat slower than Sum, but faster than equivalent hand-crafted MDX. We'll try to investigate the performance differences on AdventureWorks between LastNonEmpty and the MDX calculation you were using, and consider potential improvements in a future product release or service pack. -- Hope this helps Marius "Mauricio Cotes" <mcotes (AT) intergrupo (DOT) com> wrote in message news:Opayf0zTGHA.4340 (AT) TK2MSFTNGP10 (DOT) phx.gbl... Hello Deepak The answer is yes. The MDX expression I used to calculate the AverageOfChildren perform better than the built-in function. As Dave Wickert explains, I also would expect that those functions perform nearly the same as Sum and Count. But the fact is they don't. As I said anyone can reproduce the behavior with Adventure Works DW sample database. I also would like to share some measurements I have taken over my customer's cube: - Using Regular Measures (based on Sum and Count): 230 miliseconds (taken from the profiler) - Using the SQL Server built-in function: 150 Seconds - Using the MDX expressions: from 10 to 15 Seconds Every measurement taken under the same conditions. The behavior is consistent in two different machines using the SQL Server Enterprise Edition. And the testing I have done over Adventure Works DW was in my personal Machine running the Developer Edition. Tranks for your interest and help Deepak Mauricio Cotes BI Solutions Manager Intergrupo S.A. "Deepak Puri" <deepak_puri (AT) progressive (DOT) com> wrote in message news:%230zHDNjTGHA.5884 (AT) TK2MSFTNGP14 (DOT) phx.gbl... It's puzzling that the built-in semiadditive functions are performing poorly for you: - If you substitute the AS 2000 style SUM/COUNT for the AverageOfChildren, do you see much better performance? - Dave Wickert indicated in the MSDN Forums post below that LastNonEmpty performed equivalently to Sum or Count measures in the large Project REAL cube, so he might be able to shed some light on that issue: http://forums.microsoft.com/MSDN/Sho...30289&SiteID=1 Dave Wickert Re: Semi-additive measures in AS2005 Standard Edition There was a great deal of internal work done deep inside the runtime engine to support semi-additive measures. If all it involved was writing some fancy mdx it would have been much easier to solve. There is nothing that you can do which will perform anywhere near as fast as the native core aggregation functions. This is one area where Enterprise Edition will be the only way to get good performance at any real scale. I've been using LastNonEmptyChild on a 255GB AS database (see http://www.microsoft.com/sql/bi/ProjectREAL) for all of our inventory data (e.g. quantities on-hand). It is performing virtually the same as sum and count. _-_-_ Dave ------------------------------------------------------------------------ -------- Dave Wickert (MSFT) - Deepak Deepak Puri Microsoft MVP - SQL Server *** Sent via Developersdex http://www.developersdex.com *** |
![]() |
| Thread Tools | |
| Display Modes | |
| |