Solved

Analysis Services: Understanding "Dimension Usage"

Posted on 2009-07-05
3
464 Views
Last Modified: 2013-11-26
I'm running the "SQL Server Analysis Services Tutorial" (see http://msdn.microsoft.com/en-us/library/ms170208.aspx), using Visual Studio 2008 against the AdventureWorks database in SQL Server 2008.  I'm finding the "Attribute Relation" tab within the cube design to be extremely baffling and frustrating.  I would appreciate a salient description of the connection between creating a hierarchy and setting Attribute Relationships.  Specifically, I am getting warning messages that I do not understand: "Attribute relationships do not exist between one or more levels of this hierarchy.  This may result in decreased query performance."; "Avoid visible attribute hierarchies for attributes used as levels in user-defined hierarchies."; and "Set at least one of the attribute types to match the 'Time' dimension type."  I've attempted to change the Attribute Relationships so they match the levels hierarchy (Year/Semester/Quarter/Month/Date), which results in errors and an application that won't deploy.  

Since an application that deploys with warnings is a far lesser evil  than one that won't deploy, I've chosen not to perform those procedures that have me resetting Attribute Relationships.  I've tried resolving the question using help screens, but I get definitions for people who already know what they're doing: without concrete examples, these descriptions are worthless.  I would really appreciate a plain-English description of "Dimension Usage", perhaps including a link to a simple example of an Analysis service that deploys with no warning messages.  Im just learning about Analysis Services, and the "Attribute Relationships" feature is proving to be insurmountable stumbling block.

Many thanks, ~Peter Ferber
0
Comment
Question by:PeterFrb
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 2
3 Comments
 
LVL 15

Accepted Solution

by:
rob_farley earned 500 total points
ID: 24782938
Right...

If you have cities and countries, such as:

Country      City
US    New York, NY
UK    London, GB
CA    London, OT

"London, GB" can only be in one country, so it makes sense to have an attribute relationship set up between them. It means that the system never has to wonder how many sales there were for "London, GB" in the US. This is where the performance gain comes in.

However, if you just had "London" as your city, then you can't set up a relationship between city and country, because London could be the UK one or the CA one.

So a lot of the ideas behind attribute relationships are affected by the data that's in your warehouse. They're worth having, but if your data doesn't suit, then just put up with the warnings.

Hope this helps...

Rob
0
 

Author Closing Comment

by:PeterFrb
ID: 31600020
I went on to study Attribute Relationships, and the key information that you don't mention here is the way to set up Key Columns and the Name column.  Conceptually you're correct, but without that information you've given, although correct, is not of much practical use.  It's still good information, though, and thank you.
~Peter
0
 
LVL 15

Expert Comment

by:rob_farley
ID: 24883933
Ah - I was assuming that you had a very denormalized environment, at which point the attribute has its own key and name. And then, if your city is just called "London", and you make no differentiation between one London and another, you can't really do attribute relationships in the same way.

In a Snowflake arrangement, where you actually have a CityID, then you will almost certainly want to use a different Key and Name column, and are fully able to leverage attribute relationships too.

Rob

0

Featured Post

More Than Just A Video Library

Train for your certification. Learn the latest DevOps tools. Grow your skillset to do better work.

At Linux Academy, we release new training modules every week so you'll always be up to date on the latest tech.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

A long time ago (May 2011), I have written an article showing you how to create a DLL using Visual Studio 2005 to be hosted in SQL Server 2005. That was valid at that time and it is still valid if you are still using these versions. You can still re…
Ever needed a SQL 2008 Database replicated/mirrored/log shipped on another server but you can't take the downtime inflicted by initial snapshot or disconnect while T-logs are restored or mirror applied? You can use SQL Server Initialize from Backup…
In this video, viewers are given an introduction to using the Windows 10 Snipping Tool, how to quickly locate it when it's needed and also how make it always available with a single click of a mouse button, by pinning it to the Desktop Task Bar. Int…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

724 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question