<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.adatis.co.uk/utility/FeedStylesheets/atom.xsl" media="screen"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en"><title type="html">Calvin Fern&amp;#39;s Blog</title><subtitle type="html" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/atom.aspx</id><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/default.aspx" /><link rel="self" type="application/atom+xml" href="http://blogs.adatis.co.uk/blogs/calvinferns/atom.aspx" /><generator uri="http://communityserver.org" version="3.0.20611.960">Community Server</generator><updated>2008-11-24T18:20:21Z</updated><entry><title>SSAS Tabular, PowerPivot and conformed snowflakes</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2013/03/19/ssas-tabular-powerpivot-and-conformed-snowflakes.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2013/03/19/ssas-tabular-powerpivot-and-conformed-snowflakes.aspx</id><published>2013-03-19T22:38:25Z</published><updated>2013-03-19T22:38:25Z</updated><content type="html">&lt;p&gt;Many of you will be aware of the Kimball concept of conformed dimensions.&amp;#160; This is the principle of joining multiple fact tables, often from multiple source systems, into the same dimension table.&amp;#160; Using this shared dimension the many fact tables can be analysed by the single view of the dimensional data and deliver powerful cross dataset analysis.&amp;#160; &lt;/p&gt;  &lt;p&gt;In many cases the granularity of the differing source systems is different, a typical example of this is shown in the Adventureworks where sales data is gathered against an individual product but survey data is gathered against Product Category and SubCategory.&amp;#160; In order to facilitate easy key generation and lookups the Product Category and SubCategory are then separated from the main product table, this is described as a Snowflake design pattern as shown below.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_0BCD4017.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_43FB9162.png" width="744" height="226" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The first SSAS Tabular consideration here is that if you need to join in at a less granular level than the primary dimension table is is essential to present a snowflake to SSAS tabular, it cannot join in at a higher grain like SSAS Multidimensional can.&amp;#160; This is due to its need for a distinct list on the dimension side of the join key.&amp;#160; &lt;/p&gt;  &lt;p&gt;The relationships in SSAS Tabular or Powerpivot can then be set up as shown below to join other data in at a higher grain such as the FactSurveyResponse below&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_6265D24B.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_57E4FE2B.png" width="634" height="340" /&gt;&lt;/a&gt;&lt;/p&gt;      &lt;p&gt;The next step is to browse this data and check that we can indeed view all our data by Product SubCategory, using the ‘Analyze in Excel’ button we can browse the development cube and set up the pivot table below.&amp;#160; Allowing the slicing of disparate data by common dimensions in this fashion is one of the biggest business benefits of data warehousing.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_0B40C188.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_313671DE.png" width="336" height="339" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;The solution thus far works but, in Excel and other add hoc tools, the three product tables and large number of attributes are confusing to the end user.&amp;#160; As such we should look at hiding unused and unwanted columns and using the tabular cube to denormalise or ‘flatten’ the options presented to the business user.&amp;#160; Unwanted columns are removed by using the hide from client tools options or removing unwanted columns from the cube all together (ideally using SQL Views).&amp;#160; To reduce the number of tables presented to the user we will hide DimProductCategory and DimProductSubCategory entirely from the user while adding derived columns holding this information to DimProduct.&amp;#160; To achieve this we use the RELATED keyword in DAX to add a few new columns.&amp;#160; Adding a ProductSubCategory Column to DimProduct we use the following expression:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;=RELATED(DimProductSubcategory[EnglishProductSubcategoryName])&lt;/strong&gt;&lt;/p&gt;        &lt;p&gt;Once the above column is available, refreshing the Pivot table used earlier with the new column gives in the following result:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_21B3600F.png"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_206EC730.png" width="242" height="393" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;This incorrect result is the impact of the fact that relationships are only propagated towards the fact table automatically in Tabular and Powerpivot.&amp;#160; We need to explicitly specify that the measure we are using relates to the DimProduct table through ProductSubCategory and the context of this table needs to be used.&amp;#160; To do this we need to alter our measure calculation to take into account the related table DimProduct, unsurprisingly&amp;#160; this is achieved with the RELATEDTABLE function.&amp;#160; We use the CALCULATE function in combination to aggregate our data as appropriate.&amp;#160; The measure DAX formula can then be defined as follows:&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;=CALCULATE(     &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; DISTINCTCOUNT([CustomerKey]),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;font style="background-color:#ffff00;"&gt;RELATEDTABLE(DimProduct)       &lt;br /&gt;&lt;/font&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,VALUES(DimDate),      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; VALUES(DimCustomer)      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;A values statement is needed to allow the current filter context to be used for all other dimensions on the fact, this doesn’t seem very elegant and I am open to a better way of doing it. The measure as defined above can then be used in excel to give the same result as we first achieved while giving a much cleaner user interface with a single product table for users to find all their information. &lt;/p&gt;  &lt;p&gt;Any question or improvements get in touch here or @CalvinFerns&lt;/p&gt;  &lt;p&gt;Thanks for reading&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;   &lt;div style="padding-bottom:0px;margin:0px;padding-left:0px;padding-right:0px;display:inline;float:none;padding-top:0px;" id="scid:0767317B-992E-4b12-91E0-4F059A8CECA8:b2f6af2d-3bee-40e9-891a-8b963eb8d9ea" class="wlWriterEditableSmartContent"&gt;Technorati Tags: &lt;a href="http://technorati.com/tags/SSAS" rel="tag"&gt;SSAS&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Tabular" rel="tag"&gt;Tabular&lt;/a&gt;,&lt;a href="http://technorati.com/tags/PowerPivot" rel="tag"&gt;PowerPivot&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Snowflake" rel="tag"&gt;Snowflake&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Kimball" rel="tag"&gt;Kimball&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Comformed" rel="tag"&gt;Comformed&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Dimensions" rel="tag"&gt;Dimensions&lt;/a&gt;,&lt;a href="http://technorati.com/tags/Granularity" rel="tag"&gt;Granularity&lt;/a&gt;&lt;/div&gt;&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=12267" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author></entry><entry><title>SQL PASS Summit 2012</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2012/11/13/sql-pass-summit-2012.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2012/11/13/sql-pass-summit-2012.aspx</id><published>2012-11-13T05:11:49Z</published><updated>2012-11-13T05:11:49Z</updated><content type="html">&lt;p&gt;Having just returned from SQL PASS I thought I would blog a few highlights about the conference and some of the things I came across and am looking forward to.&amp;#160; I went over to Seattle with two of my colleagues and we started with a little sight-seeing to get our body clocks back in sync and I would thoroughly recommend it.&amp;#160; The jetlag from the UK gets to you for the first couple of days and you get to see things like this:&lt;/p&gt;  &lt;p&gt;&lt;font color="#ff0000"&gt;&lt;strong&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/DSC03818_6FAB40DF.jpg"&gt;&lt;img style="background-image:none;border-right-width:0px;padding-left:0px;padding-right:0px;display:inline;border-top-width:0px;border-bottom-width:0px;border-left-width:0px;padding-top:0px;" title="DSC03818" border="0" alt="DSC03818" src="http://blogs.adatis.co.uk/blogs/calvinferns/DSC03818_thumb_768AA7CA.jpg" width="539" height="358" /&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/font&gt;&lt;em&gt;&lt;font color="#000000" size="1"&gt;&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;em&gt;&lt;font color="#000000" size="1"&gt;The Adatis SQLPass team: Myself, Neil Dobner, Tim Kent&lt;/font&gt;&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color="#000000"&gt;This was my first time at PASS and I was not disappointed.&amp;#160; The first couple of evenings in Seattle were spent catching up with some people I have met at SQL Bits.&amp;#160; The SQL community being what it is I was quickly introduced to more people and making new connections.&amp;#160; The &lt;a href="https://twitter.com/search?q=%23SQLfamily" target="_blank"&gt;#SQLfamily&lt;/a&gt;&lt;/font&gt;&lt;font color="#ff0000"&gt; &lt;/font&gt;&lt;font color="#000000"&gt;on twitter are a welcoming bunch and really add a lot to the atmosphere of a friendly conference.&amp;#160; I would strongly recommend using twitter for both connecting with people and using the &lt;a href="https://twitter.com/search?q=%23SQLHelp" target="_blank"&gt;#SQLHelp&lt;/a&gt; hash tag to ask questions.&amp;#160; I had come across a number of the speakers at SQL Bits and they were all very good quality and I heard very little negative comment on the sessions across the 3 days.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;There were a good number of highlights for me that I would like to pass on in case they are as relevant to you as they are to me.&amp;#160; I&amp;#39;ve split them down into a few areas, firstly Powerview:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;PowerView coming to SSAS Multidimensional &lt;/li&gt;    &lt;li&gt;PowerView in Excel &lt;/li&gt;    &lt;li&gt;Powerview on Multidimensional will come to Sharepoint well before it gets into the Office Excel release cycle &lt;/li&gt;    &lt;li&gt;Image Urls and geospatial reports are also particularly easy &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Some brilliant stuff in a Tabular internals stuff given by Akshai Mirchandani and Allan Folting, DAX queries by Alberto Ferrari and 2012 SSAS by Chris Webb:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Insights into value encoding and hash encoding compression which makes sense of guidance such as &lt;/li&gt;    &lt;li&gt;Don&amp;#39;t bring in any row level identifier or document numbers etc unless you really have to &lt;/li&gt;    &lt;li&gt;Use a process defrag as maintenance when doing updates and deletes &lt;/li&gt;    &lt;li&gt;Lower end hardware can be quicker, ie go for less but faster procs &lt;/li&gt;    &lt;li&gt;Profile you DAX queries to look out for formula engine calls using: CallBackDataId &lt;/li&gt;    &lt;li&gt;Partitions are not eliminated by the query optimiser they only help you manage processing, this is particularly impressive because the engine is so fast it didn&amp;#39;t need this! &lt;/li&gt;    &lt;li&gt;Direct query really is unusable given the limitations and the awful SQL it generates &lt;/li&gt;    &lt;li&gt;Two thirds of the SSAS multidimensional codebase is there to deal with M2M correctly &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;Finally some database engine stuff:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Windowing functions in 2012 really will be a lifesaver for complex queries, especially lag and lead for those moments where your user thinks you work in Excel &lt;/li&gt;    &lt;li&gt;Updatable columns store indexes! &lt;/li&gt;    &lt;li&gt;Licencing can be a nightmare of Cores, processors and virtualisation but the key way to keep it sensible on the new model is to keep you core density at 4 cores per processor. &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;I met loads of fantastic interesting people and have picked up some great contacts.&amp;#160; The conference has also had the added side affect of getting me excited about SQL Server again.&amp;#160; It is easy to get caught in the day job and forget what a brilliant product we work with and what hard work goes on at Microsoft to keep it that way.&lt;/p&gt;  &lt;p&gt;Thanks everyone&lt;/p&gt;  &lt;p&gt;See you &lt;a href="http://www.sqlpass.org/summit/2013/" target="_blank"&gt;Next Year?&lt;/a&gt; or maybe &lt;a href="http://www.sqlbits.com/" target="_blank"&gt;SQL Bits&lt;/a&gt; a bit closer to home.&lt;/p&gt;  &lt;p&gt;&lt;a title="https://twitter.com/CalvinFerns" href="https://twitter.com/CalvinFerns" target="_blank"&gt;@CalvinFerns&lt;/a&gt;&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=10949" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author></entry><entry><title>HP Business Decision Appliance–PowerPivot in a box!</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/10/27/hp-business-decision-appliance-powerpivot-in-a-box.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/10/27/hp-business-decision-appliance-powerpivot-in-a-box.aspx</id><published>2011-10-27T08:32:31Z</published><updated>2011-10-27T08:32:31Z</updated><content type="html">&lt;p&gt;Further to my blog post about SQL server appliances Microsoft and HP also offer the very exciting Business Decision Appliance.&amp;#160; This contains a preconfigured environment with:&lt;/p&gt;  &lt;blockquote&gt;   &lt;ul&gt;     &lt;li&gt;&lt;font size="1"&gt;Microsoft Windows Server 2008 R2 Enterprise Edition &lt;/font&gt;&lt;/li&gt;      &lt;li&gt;&lt;font size="1"&gt;Microsoft SQL Server 2008 R2 Enterprise Edition with PowerPivot integration for SharePoint&lt;/font&gt; &lt;/li&gt;      &lt;li&gt;&lt;font size="1"&gt;Microsoft SharePoint 2010 Enterprise Edition Prerequisites for SharePoint and PowerPivot&lt;/font&gt; &lt;/li&gt;      &lt;li&gt;&lt;font size="1"&gt;Appliance Administration Console&lt;/font&gt; &lt;/li&gt;      &lt;li&gt;&lt;font size="1"&gt;Appliance-specific SharePoint Home Page&lt;/font&gt; &lt;/li&gt;      &lt;li&gt;&lt;font size="1"&gt;Up to 80 &lt;em&gt;Concurrent&lt;/em&gt; Users&lt;/font&gt; &lt;/li&gt;   &lt;/ul&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;font size="1"&gt;The aim of this appliance is to provide a safe and scalable environment for business users to quickly put a PowerPivot environment in place.&amp;#160; This is isolated from existing systems and can be implemented by a business department with very limited IT involvement.&amp;#160; Its isolated nature is important as many organisations don’t run SharePoint 2010 throughout their enterprise.&amp;#160; PowerPivot authors also need Excel 2010 but once reports are built and deployed they can be shared throughout the business through SharePoint using any web browser.&amp;#160; Anyone who has already tried to set up an integrated SharePoint and PowerPivot environment will know that the installation is not simple. This appliance takes that pain away with a one click installation from first start up that can have you up and running in under an hour.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;The key point is that business users love PowerPivot and its ability to quickly use their data to answer any question.&amp;#160; They can respond dynamically, collaborate and share insights throughout the organisation.&amp;#160; Importantly PowerPivot allows the creation of reports that look great and are very fast.&amp;#160; All this is done from within the familiar Excel interface and requiring little training to get started.&amp;#160; Any team of business analysts would likely have a massive boost in productivity from the installation of the BDA in their department.&amp;#160; &lt;/font&gt;&lt;font size="1"&gt;IT can then monitor those reports that are heavily used and decide whether they need making more robust through transition to enterprise software such as Analysis Services.&amp;#160; PowerPivot use is at its easiest in an environment where there is a clean data warehouse but where the business aren&amp;#39;t happy with the speed or responsiveness to change of their current front end.&amp;#160; In an environment with more disparate and dirty data the end users need to be more SQL and data modelling skilled, but the payback can be even greater. &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;I see massive opportunity in this appliance for any team of data analysts to be able to deliver massive value to their business right now.&amp;#160; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;&lt;font size="1"&gt;&lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/appliances/hp-ssbi.aspx" target="_blank"&gt;More Info on the BDA&lt;/a&gt;&amp;#160;&lt;/font&gt;&lt;/font&gt;&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=9972" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author><category term="Business Decision Appliance" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/Business+Decision+Appliance/default.aspx" /><category term="Appliance" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/Appliance/default.aspx" /><category term="PowerPivot" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/PowerPivot/default.aspx" /><category term="Crescent" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/Crescent/default.aspx" /><category term="SharePoint 2010" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/SharePoint+2010/default.aspx" /></entry><entry><title>SQL Server can scale</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/09/21/sql-server-can-scale.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/09/21/sql-server-can-scale.aspx</id><published>2011-09-21T17:52:17Z</published><updated>2011-09-21T17:52:17Z</updated><content type="html">&lt;p&gt;If you work in large enterprises you often come across the attitude that Microsoft SQL Server can’t scale.&amp;#160; People therefore turn to vendors such as Oracle and Teradata for solutions at very high cost.&amp;#160; This attitude often comes from in-house experience of a growing SQL database which hits something between 5 and 10TB and starts slowing down and becoming difficult to work with.&amp;#160; These databases are often run on multi-instance servers with shared SAN access and little thought to data fragmentation.&amp;#160; Its no wonder that their environment has problems!&lt;/p&gt;  &lt;h5&gt;&lt;font color="#4f81bd" size="3"&gt;Microsoft Strategy&lt;/font&gt;&lt;/h5&gt;  &lt;p&gt;I was recently invited to a Microsoft partners event which aims to challenge these attitudes and give partners better information to discuss large scale SQL implementations. Their strategy is to use partnership with HP to give SQL server a balanced hardware configuration to run on.&amp;#160; This will solve the major bottleneck which gives SQL Server the performance problems people perceive are with the software.&amp;#160; They have created a range of solutions together to allow SQL server to scale effectively to meet any need.&amp;#160;&amp;#160; The first of these solutions was released a couple of years ago and there are more in the pipeline.&amp;#160; There are real world case studies available from Microsoft detailing the success of this strategy for many early adopters. These solutions are targeted at the workloads they need to run and are detailed below.&lt;/p&gt;  &lt;p&gt;&lt;font color="#4f81bd"&gt;&lt;strong&gt;Warehousing&lt;/strong&gt; &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/appliances/hp-bdw.aspx" target="_blank"&gt;&amp;lt; 5TB&lt;/a&gt; – HP Business Data Warehouse Appliance&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/data-warehousing/fast-track.aspx" target="_blank"&gt;20TB – 80TB&lt;/a&gt; – Fast Track Data Warehouse&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/data-warehousing/HP-pdw.aspx" target="_blank"&gt;126TB – 500TB&lt;/a&gt; – HP Enterprise Data Warehouse Appliance&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#4f81bd"&gt;Applications/ Consolidation/Private Cloud&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://h71028.www7.hp.com/enterprise/us/en/partners/microsoft-database-consolidation-solution.html" target="_blank"&gt;100VM’s- 10,000VM’s&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;font color="#4f81bd"&gt;OLTP&lt;/font&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/hp-partnership.aspx" target="_blank"&gt;On the way shortly&lt;/a&gt; - Will scale to the worlds largest OLTP Implementations &lt;/p&gt;  &lt;p&gt;These solutions are all positioned such that they are going to be significantly cheaper than almost any other vendor while providing equal or better performance.&amp;#160; The appliances also provide excellent improvements in time to market, drastically reducing required configuration time.&amp;#160; I would also recommend the 5TB box to anyone building a data warehouse of any size.&amp;#160; This give you the confidence that you are buying a competitively priced server which is optimised for a SQL workload and you are not going to hit any hardware bottlenecks which you might come across on a shared or custom build server.&amp;#160; The evolution of the Microsoft appliance and fast-track structure has also produced predictable benchmarks.&amp;#160; You can choose the performance you need by picking the right server and if you follow the best practices you can be sure that you will achieve the throughput and response time needed.&lt;/p&gt;  &lt;p&gt;Oracle’s Exadata platform claims to be able to manage any workload at any scale.&amp;#160; What they don’t specify in the sales briefs is the amount of configuration required to match the platform to the workload in your environment.&amp;#160; This means you need to invest in a lot of time for your Oracle DBA’s to tune and configure the hardware correctly.&amp;#160; It is then not a comparable product to a SQL server installed on a spare bit of hardware which has very little time invested in it.&amp;#160; &lt;/p&gt;  &lt;p&gt;With a balanced hardware configuration and best practice ETL Microsoft SQL Server can meet any scale requirement asked of it.&amp;#160; So next time you come across the “SQL can’t scale” attitude don’t be afraid to let people know that they are out of date and SQL will be able to meet their requirement at a far lower cost than the competitors.&lt;/p&gt;  &lt;p&gt;(There is another appliance out for self service BI but it deserves a post all of its own - &lt;a href="http://www.microsoft.com/sqlserver/en/us/solutions-technologies/Appliances/HP-ssbi.aspx" target="_blank"&gt;BDA&lt;/a&gt; )&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=9748" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author></entry><entry><title>Slides from Avon Information management talk</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/07/21/slides-from-avon-information-management-talk.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/07/21/slides-from-avon-information-management-talk.aspx</id><published>2011-07-21T11:42:43Z</published><updated>2011-07-21T11:42:43Z</updated><content type="html">&lt;p&gt;Distributing the slides from my talk last night, it was well received and I think everyone was able to take something away.&lt;/p&gt;  &lt;p&gt;Credit goes to Marco Russo and Alberto Ferrari for their data modelling ideas, visit &lt;a href="http://www.sqlbi.com"&gt;www.sqlbi.com&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a title="http://dl.dropbox.com/u/25925341/Learning%27s%20from%20large%20scale%20dw%20project.pptx" href="http://dl.dropbox.com/u/25925341/Learning%27s%20from%20large%20scale%20dw%20project.pptx"&gt;http://dl.dropbox.com/u/25925341/Learning%27s%20from%20large%20scale%20dw%20project.pptx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Hopefully not my last talk as i enjoyed doing it.&amp;#160; Look out for further Bath based events at: &lt;/p&gt;  &lt;p&gt;&lt;a title="http://avonim.wordpress.com/" href="http://avonim.wordpress.com/"&gt;http://avonim.wordpress.com/&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;All comments welcome&lt;/p&gt;  &lt;p&gt;Calvin&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=9345" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author></entry><entry><title>SSRS Language parameter using SSAS Translations</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/07/05/ssrs-language-parameter-using-ssas-translations.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2011/07/05/ssrs-language-parameter-using-ssas-translations.aspx</id><published>2011-07-05T09:52:24Z</published><updated>2011-07-05T09:52:24Z</updated><content type="html">&lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Problem&lt;/h5&gt;  &lt;p&gt;SSAS translations are known to deal with warehousing language requirements well.&amp;#160; We recently had a requirement for a multi-language report suite on top of a user browsed cube. First thought was SSAS translations, these will pick up the users local language settings and allow an elegant solution to the problem.&amp;#160; &lt;/p&gt;  &lt;p&gt;However a requirement was put forward for a language picker in the SSRS report suite to over-ride the users locale if they so desire.&amp;#160; This was not so obvious.&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Data source&lt;/h5&gt;  &lt;p&gt;We started with a list of languages to build a picker from, this was built by importing the table available here to a SQL Server and building it as a dataset in our report:&lt;/p&gt;  &lt;p&gt;&lt;a title="http://msdn.microsoft.com/en-us/library/0h88fahh.aspx" href="http://msdn.microsoft.com/en-us/library/0h88fahh.aspx"&gt;http://msdn.microsoft.com/en-us/library/0h88fahh.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;It is important to bring through the decimal value in column 4 and the short string in column 2 as we will see later.&lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;  &lt;h5&gt;Parameter Build&lt;/h5&gt;  &lt;p&gt;Use the dataset on MSDN to build a language select parameter.&amp;#160; Use the language name in the label field and the decimal locale identifier in the value field.&amp;#160; The setup should look something like this:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_712771DB.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_6857698F.png" width="527" height="435" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;h5&gt;Default value setup&lt;/h5&gt;  &lt;p&gt;If you just need English as the default use the UK code 2057 as your default value, however a more elegant final solution is a little more complex.&amp;#160; &lt;/p&gt;  &lt;p&gt;Reporting services provides the built in variable User!Language which holds the users language in the short string ‘en-gb’ style format.&amp;#160; So although we can access the users language it needs translating into a localeId before we can pass it to SSAS.&amp;#160; Fortunately for us the same table we used above can be used to translate between short string and locale.&lt;/p&gt;  &lt;p&gt;I achieved this using a further hidden parameter defaulted to the built in User!Language variable, the parameter was set up as detailed below:&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_6E9E401D.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_4E17006B.png" width="536" height="443" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Using the dataset where LanguageCode = short string in our source table&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_1ADAC702.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_7E5DD521.png" width="540" height="446" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;If this parameter is run first (it must be earlier in the report parameters list) it will contain the users language in the form ‘en-gb’ in the value and ‘2057’ in the label field.&amp;#160; It is then simple to set the default of the first dropdown parameter to the value of the hidden parameter’s label using the following syntax. &lt;/p&gt;  &lt;p&gt;=Parameters!UserLanguage.Label&lt;/p&gt;  &lt;p&gt;I am open to suggestions of a way to get the default without a hidden parameter or a large switch statement so if you find something more elegant please let me know!&amp;#160; It is also worth noting that if a user has a language that your source table does not have an entry for you are obviously going to lose the defaulting behaviour.&amp;#160; &lt;/p&gt;  &lt;h5&gt;&lt;/h5&gt;    &lt;h5&gt;Parameter Ordering&lt;/h5&gt;  &lt;p&gt;It is essential to make sure that the parameters are ordered in your parameter list in the sequence they need to be evaluated in.&amp;#160; In this case the hidden user language parameter needs to be first, followed by the visible language drop down parameter.&amp;#160; Only then should other report parameters be added.&lt;/p&gt;  &lt;h5&gt;Passing Parameter value to SSAS&lt;/h5&gt;  &lt;p&gt;In order for SSAS to provide us the data in the language requested we need to pass the locale to analysis services.&amp;#160; We can do this by over-riding the locale in the connection string.&amp;#160; Go to your report data source and double click for properties.&amp;#160; Then we need to edit the connection string expression as circled.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://blogs.adatis.co.uk/blogs/calvinferns/image_04A4ABB0.png"&gt;&lt;img style="background-image:none;border-bottom:0px;border-left:0px;padding-left:0px;padding-right:0px;display:inline;border-top:0px;border-right:0px;padding-top:0px;" title="image" border="0" alt="image" src="http://blogs.adatis.co.uk/blogs/calvinferns/image_thumb_0A7F4F49.png" width="536" height="399" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Here we need to make sure our connection to SSAS is provided with the locale from the parameter.&amp;#160; We use the following expression to build our connections string.&lt;/p&gt;  &lt;p&gt;&lt;font size="3"&gt;=&amp;quot;Data Source=localhost;Initial Catalog=&amp;quot; &amp;amp; CHR(34) &amp;amp; &amp;quot;Adventure Works DW 2008R2&amp;quot; &amp;amp; CHR(34) &amp;amp; &amp;quot;;Locale Identifier=&amp;quot; &amp;amp; Parameters!Language.Value&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;(CHR(34) is the “ character that we wanted to escape properly.)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;This builds the string detailed below for the parameter selection Spanish.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;=Data Source=localhost;Initial Catalog=&amp;quot;Adventure Works DW 2008R2&amp;quot;;Locale Identifier=3082&lt;/p&gt;  &lt;p&gt;&lt;font size="1"&gt;This should now preview and allow you to select the language and your data sets will return any translations you have present in the cube.&lt;/font&gt;&lt;/p&gt;  &lt;h5&gt;Notes&lt;/h5&gt;  &lt;p&gt;If you are using a shared data source reference this is not going to work for you as it is only possible to expression a data source held in the report.&amp;#160; In this case perhaps you can use a solution along the lines of the one detailed by Mosha here: &lt;a title="http://sqlblog.com/blogs/mosha/archive/2006/10/07/member-caption-translations-in-mdx.aspx" href="http://sqlblog.com/blogs/mosha/archive/2006/10/07/member-caption-translations-in-mdx.aspx"&gt;http://sqlblog.com/blogs/mosha/archive/2006/10/07/member-caption-translations-in-mdx.aspx&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Another warning is to finish your report design first because you cant refresh datasets and metadata once the expression is set&lt;/p&gt;  &lt;p&gt;Tested on 2008R2 only.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;Hope this helps everyone and allows you to select your existing translations in a flexible way through SSRS.&amp;#160; Your comments are welcome.&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=9236" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author><category term="Translations" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/Translations/default.aspx" /><category term="default" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/default/default.aspx" /><category term="language" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/language/default.aspx" /><category term="SSRS" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/SSRS/default.aspx" /><category term="SSAS" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/SSAS/default.aspx" /><category term="parameter" scheme="http://blogs.adatis.co.uk/blogs/calvinferns/archive/tags/parameter/default.aspx" /></entry><entry><title>Calvin Ferns joins Adatis Blog team</title><link rel="alternate" type="text/html" href="http://blogs.adatis.co.uk/blogs/calvinferns/archive/2008/11/24/calvin-ferns-joins-adatis-blog-team.aspx" /><id>http://blogs.adatis.co.uk/blogs/calvinferns/archive/2008/11/24/calvin-ferns-joins-adatis-blog-team.aspx</id><published>2008-11-24T18:20:21Z</published><updated>2008-11-24T18:20:21Z</updated><content type="html">&lt;p&gt;I joined Adatis in early August and am now going to begin blogging.&amp;#160; My initial posts will be on SSRS and PerformancePoint, as my skills grow I’m sure the technicality and scope of my postings will increase.&amp;#160; &lt;/p&gt;  &lt;p&gt;Hope that I find some topics that are of use to you and look forward to your comments.&lt;/p&gt;&lt;img src="http://blogs.adatis.co.uk/aggbug.aspx?PostID=7464" width="1" height="1"&gt;</content><author><name>Calvin Ferns</name><uri>http://blogs.adatis.co.uk/members/Calvin-Ferns.aspx</uri></author></entry></feed>