![]() | |
![]() |
| | Thread Tools | Display Modes |
#1
| |||
| |||
|
#2
| |||
| |||
|
|
I'm attempting to configure my Analysis Server instance to use all available memory in my system. I have 6GB available and I would like the service to use as much as possible. There doesn't seem to be much information on configuring memory available in BOL so any advice appreciated. Query performance for a relatively small database < 10GB seems very bad. I have queries that frequently time out after 15 or more seconds. When I examine the memory consumed by the service it is typically around 400mb. What gives? I thought analysis services was supposed to be fast. My box is a 4-way 700mhz zeon with 6gb of ram and the disk can handle sustained 8k random reads at a rate of about 4000 I/O's per second according to IOMeter. |
#3
| |||
| |||
|
|
AS uses the memory it uses. It is not like SQL that just goes out and grabs everything and then slowly gives it back. AS starts out with just dimension memory and then builds aggregate cache as it runs (executes more and more queries). However, what it caches is aggregates; not complicated sub-results. Thus if your cube uses some aggs; but then has large non-empty crossjoins for it calculations, your queries will take a long time; but aggs being used memory could be small. It is aggregation which make AS, as you say, "fast". Without the proper aggregation level, then slow queries might be reasonable and understandable. Also, AS' computing model is different from SQL RDBMS (for SQL2K). The client-side component PTS is thick and has maybe 70% of the server code. Thus (depending on circumstances) query execution might be happening on the client and the server is only supplying agg data. If this is true, then again, having long query times without a lot of memory usage on the server might be consistent. Second, AS is not an AWE-aware application. Thus unless you turn on /3GB or have a 64-bit server, then it is limited to 2GB of virtual address space. Thus if this application is dedicated to AS you will never use all of those 6GB regardless of what you do. Lots of technical material on how AS uses memory and how the interaction between aggs and cache can be found in these two resources: AS Operations Guide http://www.microsoft.com/technet/pro.../anservog.mspx AS Performance Guide http://www.microsoft.com/technet/pro.../ansvcspg.mspx -- Dave Wickert [MSFT] dwickert (AT) online (DOT) microsoft.com Program Manager BI SystemsTeam SQL BI Product Unit (Analysis Services) -- This posting is provided "AS IS" with no warranties, and confers no rights. "Chris Stransky" <ChrisStransky (AT) discussions (DOT) microsoft.com> wrote in message news:1160ABC5-8DDC-4BDF-944F-2C38353E11D9 (AT) microsoft (DOT) com... I'm attempting to configure my Analysis Server instance to use all available memory in my system. I have 6GB available and I would like the service to use as much as possible. There doesn't seem to be much information on configuring memory available in BOL so any advice appreciated. Query performance for a relatively small database < 10GB seems very bad. I have queries that frequently time out after 15 or more seconds. When I examine the memory consumed by the service it is typically around 400mb. What gives? I thought analysis services was supposed to be fast. My box is a 4-way 700mhz zeon with 6gb of ram and the disk can handle sustained 8k random reads at a rate of about 4000 I/O's per second according to IOMeter. |
#4
| |||
| |||
|
|
Thanks for responding to this post. I have reviewed the documents and they were somewhat helpful for troubleshooting SQL 2005 AS. I have redesigned a few dimensions and added additional hierarchies and I now have 6 partitions. However, I still get frequenty query timeout errors. I've been searching for anything that more or less gives me some idea as to what is a big cube and what isn't a big cube ... thinking that could help me. I have not been successful on that front ... so maybe someone can comment on my current cube. Source structure is as follows: 80 million fact rows: tracking about 10 measures. no calculated measures About 10 dimensions. Most dimensions probably have less than 200 members. There are 3 dimensions that are SCD Type 2 and they have around 4,000 members. My cube is built using MOLAP storage with the aggregation optimization level set to 35% for each partition. So, the basic questions are ... is this a big cube? is it too big for AS? I expect to be able to drag a 1,000 member dimension onto each axis of he browser and get answers instead of timeouts ... is that reasonable? (e.g) I want to be able to cross customer accounts with investment type ... and my fact table basically contains all of the trade details. Is there a way to set the browser timeout ... because I can't seem to find it. Any feedback appreciated. "Dave Wickert [MSFT]" wrote: AS uses the memory it uses. It is not like SQL that just goes out and grabs everything and then slowly gives it back. AS starts out with just dimension memory and then builds aggregate cache as it runs (executes more and more queries). However, what it caches is aggregates; not complicated sub-results. Thus if your cube uses some aggs; but then has large non-empty crossjoins for it calculations, your queries will take a long time; but aggs being used memory could be small. It is aggregation which make AS, as you say, "fast". Without the proper aggregation level, then slow queries might be reasonable and understandable. Also, AS' computing model is different from SQL RDBMS (for SQL2K). The client-side component PTS is thick and has maybe 70% of the server code. Thus (depending on circumstances) query execution might be happening on the client and the server is only supplying agg data. If this is true, then again, having long query times without a lot of memory usage on the server might be consistent. Second, AS is not an AWE-aware application. Thus unless you turn on /3GB or have a 64-bit server, then it is limited to 2GB of virtual address space. Thus if this application is dedicated to AS you will never use all of those 6GB regardless of what you do. Lots of technical material on how AS uses memory and how the interaction between aggs and cache can be found in these two resources: AS Operations Guide http://www.microsoft.com/technet/pro.../anservog.mspx AS Performance Guide http://www.microsoft.com/technet/pro.../ansvcspg.mspx -- Dave Wickert [MSFT] dwickert (AT) online (DOT) microsoft.com Program Manager BI SystemsTeam SQL BI Product Unit (Analysis Services) -- This posting is provided "AS IS" with no warranties, and confers no rights. "Chris Stransky" <ChrisStransky (AT) discussions (DOT) microsoft.com> wrote in message news:1160ABC5-8DDC-4BDF-944F-2C38353E11D9 (AT) microsoft (DOT) com... I'm attempting to configure my Analysis Server instance to use all available memory in my system. I have 6GB available and I would like the service to use as much as possible. There doesn't seem to be much information on configuring memory available in BOL so any advice appreciated. Query performance for a relatively small database < 10GB seems very bad. I have queries that frequently time out after 15 or more seconds. When I examine the memory consumed by the service it is typically around 400mb. What gives? I thought analysis services was supposed to be fast. My box is a 4-way 700mhz zeon with 6gb of ram and the disk can handle sustained 8k random reads at a rate of about 4000 I/O's per second according to IOMeter. |
#5
| |||
| |||
|
#6
| |||
| |||
|
#7
| |||
| |||
|
#8
| |||
| |||
|
|
ok, so that attempts to justify the strategy for server-side only execution - we've also been bitten by problems of PTS pulling down a lot of data over the network (i haven't made the Cache Policy connection property = 7 changes, because i still cannot find any MS documentation or even answers to posts regarding what it does!) so server-side execution can make some sense. But even after your response above, i can't seem to see an answer to the apparent conflict... the MS statement about AS2K5 says: Calculations are centralized on the server which i (rightly or wrongly - please feel free to correct me) read as: Server-side execution only your statement about AS2K5 says: PTS MAY be doing much of the work on the client machine rather than on the server which again i read as: sometimes execution is client-side Have i misinterpreted the statements or where does AS2K5 query execution take place? R |
#9
| |||
| |||
|
![]() |
| Thread Tools | |
| Display Modes | |
| |