<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://sqlblog.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Search results matching tags 'Analysis Services', 'DAX', and 'Tabular'</title><link>http://sqlblog.com/search/SearchResults.aspx?o=DateDescending&amp;tag=Analysis+Services,DAX,Tabular&amp;orTags=0</link><description>Search results matching tags 'Analysis Services', 'DAX', and 'Tabular'</description><dc:language>en-US</dc:language><generator>CommunityServer 2.1 SP2 (Build: 61129.1)</generator><item><title>Advanced DAX course in May - unique date in 1H 2013 #dax #tabular #ssas #powerpivot</title><link>http://sqlblog.com/blogs/marco_russo/archive/2013/04/22/advanced-dax-course-in-may-unique-date-in-1h-2013-dax-tabular-ssas-powerpivot.aspx</link><pubDate>Mon, 22 Apr 2013 08:55:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:48797</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;One year after the release of SQL Server 2012 I see the growing demand for DAX. There are two reasons for that: an higher number of PowerPivot users started to build more complex data models, and SSAS Tabular is starting to be adopted by a larger number of companies, with and without a previous experience on former versions of Analysis Services.&lt;/p&gt;  &lt;p&gt;For this reasons we decided to offer a &lt;a href="http://www.sqlbi.com/courses/dax-advanced-workshop-london-may2013/"&gt;first public edition&lt;/a&gt; of our &lt;strong&gt;&lt;a href="http://www.sqlbi.com/training/"&gt;Advanced DAX Workshop&lt;/a&gt;&lt;/strong&gt;, a training on DAX that is aimed at Advanced PowerPivot users and Analysis Services developers that want to master the DAX language. Up to now, we offered this course only for &lt;a href="http://www.sqlbi.com/courses-on-site/dax-advanced-workshop/"&gt;private classes&lt;/a&gt;, because of the limited demand, but now there is enough interest and adoption to justify an open class.&lt;/p&gt;  &lt;p&gt;The goal of this DAX training is learning to write DAX expressions for measures and calculated columns, DAX queries for reporting needs, read DAX query plans and optimize DAX formulas. The course is a three-day workshop that includes many hands-on lab sessions, with exercises that will guide you in the learning process of the more advanced DAX concepts, enabling you to master the writing of DAX code.&lt;/p&gt;  &lt;p&gt;The course will be in &lt;a href="http://www.sqlbi.com/courses/dax-advanced-workshop-london-may2013/"&gt;London on May 13-15, 2013&lt;/a&gt;. There are direct flights with a huge number of countries and cities, also outside of Europe. We do not expect to deliver other editions of this course before other 5-6 months, so don’t lose the chance to attend this intensive DAX master course. I will be the teacher in this edition and Chris Webb will assist me in organization with &lt;a href="http://www.technitrain.com/"&gt;Technitrain&lt;/a&gt;. So don’t wait, early bird discount will expire in a few days, &lt;a href="http://www.sqlbi.com/courses/dax-advanced-workshop-london-may2013/#register"&gt;register now&lt;/a&gt; and join us in London!&lt;/p&gt;</description></item><item><title>SQLBits XI in May 2013 – many reasons to attend! #sqlbits #dax #tabular</title><link>http://sqlblog.com/blogs/marco_russo/archive/2013/02/20/sqlbits-xi-in-may-2013-many-reasons-to-attend-sqlbits-dax-tabular.aspx</link><pubDate>Wed, 20 Feb 2013 09:33:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:47803</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;I and &lt;a href="http://sqlblog.com/blogs/alberto_ferrari"&gt;Alberto Ferrari&lt;/a&gt; will speak at &lt;a href="http://www.sqlbits.com"&gt;SQLBits XI&lt;/a&gt; (Nottingham, UK – May 2-4, 2013) and there are many good reasons to join us there, especially if you are interested to DAX!&lt;/p&gt;  &lt;p&gt;Here are our sessions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;strong&gt;Thursday, 02 May 2013 &lt;/strong&gt;– Training Day - &lt;strong&gt;&lt;a href="http://www.sqlbits.com/Sessions/Event11/From_0_to_DAX2"&gt;From 0 to DAX&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;The entire day is dedicated to learning DAX, starting from the syntax and going forward with more complex syntaxes for both expressions and queries in DAX.&lt;/li&gt;      &lt;li&gt;Technical level: the goal is to be introductive, explaining the important concepts in DAX (such as filter context, row context, context transitions) and covering the usage of the most common DAX functions.&lt;/li&gt;      &lt;li&gt;Target audience: Information Workers interested in exploiting the many interesting features of PowerPivot for Excel 2013 and BI developers who want to learn the DAX language.&lt;/li&gt;      &lt;li&gt;In practice: if you started using DAX two years ago and created several projects in Tabular and/or PowerPivot with complex calculations, this is not the workshop for you (read about an &lt;a href="http://www.sqlbi.com/courses/dax-advanced-workshop-london-may2012/"&gt;Advanced DAX Workshop&lt;/a&gt; later in this post). But if you just started your first Tabular or PowerPivot projects and you are still wondering what CALCULATE is all about, then this is definitely the right training for you!&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Friday, 03 May 2013&lt;/strong&gt; – 10:50am – &lt;strong&gt;&lt;a href="http://www.sqlbits.com/Sessions/Event11/Modern_Data_Warehousing_Strategy"&gt;Modern Data Warehousing Strategy&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;How to design a Data Warehouse in 2013? Should we change something considering the introduction of in-memory technologies such as xVelocity? Is Self-Service BI affecting the way we design and implement a Corporate Data Warehouse?&lt;/li&gt;      &lt;li&gt;This is not a session about a specific feature of a product, but features and products have their effects on the data warehouse design. We’ll stop one hour trying to understand what changes in the big picture, affecting also our day-by-day job.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Friday, 03 May 2013&lt;/strong&gt; – 2:40pm – &lt;strong&gt;&lt;a href="http://www.sqlbits.com/Sessions/Event11/Inside_xVelocity_InMemory_Engine_VertiPaq_"&gt;Inside xVelocity InMemory Engine (VertiPaq)&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Do you use PowerPivot and/or Analysis Services Tabular? They use the same engine (xVelocity/VertiPaq) and you should know how it works.&lt;/li&gt;      &lt;li&gt;This session will show how xVelocity/VertiPaq works, how it compresses and stores data and why it is so fast answering to your queries.&lt;/li&gt;      &lt;li&gt;Why this is important? Because it is geeky! And because this knowledge will help you optimizing storage and DAX queries.&lt;/li&gt;   &lt;/ul&gt;    &lt;li&gt;&lt;strong&gt;Saturday, 04 May 2013 &lt;/strong&gt;– 10:50am – &lt;strong&gt;&lt;a href="http://www.sqlbits.com/Sessions/Event11/DAX_Query_Engine_Internals"&gt;DAX Query Engine Internals&lt;/a&gt;&lt;/strong&gt;&lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;DAX is amazingly fast. But some query might be not fast enough.&lt;/li&gt;      &lt;li&gt;Do you want to know how to optimize your DAX query? This session is for you.&lt;/li&gt;      &lt;li&gt;Knowing the internals of xVelocity InMemory engine is just the first step (see Friday’s session). Then you need to apply this knowledge to DAX and understand why different DAX syntaxes for the same result might have different performance.&lt;/li&gt;      &lt;li&gt;Understanding cross-filtering is a key to master DAX optimization. The more you know DAX, the more you will appreciate this session!&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;As I said before, the training day is an introductive course. If you already know DAX and want to improve your skills, there is a &lt;a href="http://sqlblog.com/blogs/marco_russo/archive/2013/02/07/first-dax-advanced-workshop-in-london-may-2013-dax-tabular-ssas.aspx"&gt;&lt;strong&gt;3-day Advanced DAX Workshop&lt;/strong&gt;&lt;/a&gt; I will teach in London on May 13-15, 2013. It could be also a good reason to visit London if you come from other countries!&lt;/p&gt;  &lt;p&gt;Now that we are almost done with the &lt;a href="http://www.sqlbi.com/books/excel-2013-building-data-models-with-powerpivot/"&gt;PowerPivot for Excel 2013&lt;/a&gt; book, we will write &lt;a href="http://www.sqlbi.com/articles/"&gt;more articles&lt;/a&gt; – stay tuned!&lt;/p&gt;</description></item><item><title>DAX Time Intelligence for 4-4-5 Calendar, ISO Calendar and other custom ones #dax #powerpivot</title><link>http://sqlblog.com/blogs/marco_russo/archive/2013/02/19/dax-time-intelligence-for-4-4-5-calendar-iso-calendar-and-other-custom-ones-dax-powerpivot.aspx</link><pubDate>Tue, 19 Feb 2013 14:21:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:47663</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;DAX offers a set of Time Intelligence functions that simplify writing DAX expressions such as YTD, YOY and other time-related calculations. However, these functions only works when some assumptions are valid: your periods should be “natural” months and quarter. Some industries, such as retail and manufacturing, are used to accounting periods that are based on weeks instead of months. One month and one quarter are a set of weeks and a week cannot be split in different months, quarter or years. Making DAX working on these custom calendars requires you to write some DAX expression without using the built-in Time Intelligence functions.&lt;/p&gt;  &lt;p&gt;I wrote an article, &lt;a href="http://www.sqlbi.com/articles/week-based-time-intelligence-in-dax/"&gt;Week-Based Time Intelligence in DAX&lt;/a&gt;, which describes how to write the common DAX calculations required on a custom calendar. I also included two samples, one for Excel 2010 and the other for Excel 2013, so that you can easily work on both versions (&lt;a href="http://sqlblog.com/blogs/marco_russo/archive/2013/01/14/powerpivot-compatibility-across-versions.aspx"&gt;as you know&lt;/a&gt;, downgrading a workbook from Excel 2013 to Excel 2010 with PowerPivot is not possible).&lt;/p&gt;  &lt;p&gt;An important tip you will find is that creating a column that contains the number of days elapsed in a year (or the running total of days in the year, if you prefer) makes it easy writing the FILTER required to use the right set of days in each calculation. After all, this technique is very similar to the one you would use in SQL to perform the same calculation, for this reason DAX is considered more intuitive than MDX by developers with a SQL background.&lt;/p&gt;</description></item><item><title>First DAX Advanced Workshop in London, May 2013 #dax #tabular #ssas</title><link>http://sqlblog.com/blogs/marco_russo/archive/2013/02/07/first-dax-advanced-workshop-in-london-may-2013-dax-tabular-ssas.aspx</link><pubDate>Thu, 07 Feb 2013 10:21:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:47516</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;Are you working with SSAS Tabular? Are you an experienced PowerPivot user? In both cases, you should be aware that there is only one skill that is important for PowerPivot and SSAS Tabular, and it is the &lt;strong&gt;DAX &lt;/strong&gt;language. I and Alberto have been using DAX since 2010, wrote several &lt;a href="http://www.sqlbi.com/books/"&gt;books&lt;/a&gt; containing several chapters about DAX and we know that there is still much to do. We have plans to publish more content online (more on this in a few months…) but we realized that the number of companies building tabular models is increasing every day. The common issues we see are about design, calculation, queries and performance. All of them are related to DAX, and we understand that learning DAX requires mentoring and practice (if only we had that 3 years ago…).&lt;/p&gt;  &lt;p&gt;Well, the good news is that now you can learn DAX deeper and faster. We created a new intensive DAX course that we called &lt;strong&gt;DAX Advanced Workshop&lt;/strong&gt;. It is a three-day classroom that is aimed to Advanced PowerPivot users and Analysis Services developers that want to master the DAX language and improve their skills in performance optimization. The course &lt;b&gt;includes hands-on lab sessions&lt;/b&gt; assisted by the trainer (me or Alberto), including exercises for creating queries, solving business problems and locating performance bottlenecks in DAX.&lt;/p&gt;  &lt;p&gt;&lt;b&gt;Prerequisite&lt;/b&gt;: Attendees need to have a basic knowledge of the SQL 2012 Analysis Services Tabular modeling or they need to be familiar with PowerPivot for Excel and have produced at least some basic reports. A prerequisite of the course is the participation to a SSAS Tabular or PowerPivot Workshop, or having equivalent experience.&lt;/p&gt;  &lt;p&gt;If you think you’re ready for that, we have a single date in Europe before summer, and it will be in &lt;strong&gt;&lt;a href="http://www.sqlbi.com/courses/dax-advanced-workshop-london-may2012/"&gt;London on May 13-15, 2013&lt;/a&gt;&lt;/strong&gt;&lt;strong&gt;&lt;/strong&gt;. You can &lt;a href="http://www.sqlbi.com/courses/dax-advanced-workshop-london-may2012/"&gt;download course outline and register here&lt;/a&gt;. Seats are limited, hands-on-labs requires real assistance. You have to bring your laptop for hands-on-labs. It will be funny, but it will be tough!&lt;/p&gt;  &lt;p&gt;We don’t have plans for other editions until next fall, so if you are interested, free your agenda. Unless you want an &lt;a href="http://www.sqlbi.com/courses-on-site/dax-advanced-workshop/"&gt;on-site edition in another date&lt;/a&gt;, of course.&lt;/p&gt;  &lt;p&gt;Please, let me know if you are interested in US. You might have a good excuse to visit London, but if this is not enough, then &lt;a href="mailto:marco.russo@sqlbi.com"&gt;give me your feedback&lt;/a&gt;. We will evaluate demand from US in order to schedule other public classes.&lt;/p&gt;</description></item><item><title>End of 2012 and news in 2013 for #PowerPivot, #ssas #tabular and BI</title><link>http://sqlblog.com/blogs/marco_russo/archive/2012/12/27/end-of-2012-and-news-in-2013-for-powerpivot-ssas-tabular-and-bi.aspx</link><pubDate>Thu, 27 Dec 2012 18:26:38 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:46845</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;This year is going to end, Maya failed their predictions and while this is bad for predictive industry, it’s also good for all of us!&lt;/p&gt;  &lt;p&gt;We’ve seen many news in Microsoft BI stack:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Excel 2013 has been RTM’d – its General Availability is expected in early 2013 but many early adopters are already using it daily (myself included)&lt;/li&gt;    &lt;li&gt;PowerPivot and Power View are both integrated in Excel 2013 and I think that they are the most compelling reason to upgrade your Excel. Power View alone worth the effort&lt;/li&gt;    &lt;li&gt;SQL Server 2012 has been released and I’m seeing the first SSAS Tabular projects going in production in these days.&lt;/li&gt;    &lt;li&gt;I, Alberto and Chris published the book &lt;a id="bp___v___ctl00_ctl00_rcr_bsb___lcl___Categories_ctl00_Links_ctl08_Link" title="A full coverage of the SSAS Tabular model, new in SQL Server 2012" href="http://www.amazon.com/gp/product/0735658188/?tag=se04-20"&gt;&lt;font color="#0066cc"&gt;Microsoft SQL Server 2012 Analysis Services: The BISM Tabular Model&lt;/font&gt;&lt;/a&gt;, which has good reviews and is selling well. It’s clear that the interest is high in this new technology for Corporate BI&lt;/li&gt;    &lt;li&gt;We also run several &lt;a href="http://www.ssasworkshop.com"&gt;SSAS Tabular Workshops&lt;/a&gt;, many sessions about Tabular topics in conferences and user groups.&lt;/li&gt;    &lt;li&gt;I stopped writing blogs/article in the last weeks, but don’t worry, it’s just that I and Alberto are just writing another book…&lt;/li&gt;    &lt;li&gt;We recorded several &lt;a href="http://projectbotticelli.com/dax"&gt;videos about DAX for Project Botticelli&lt;/a&gt; and we’ll enhance this library in 2013.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;So what’s next in 2013? Let’s see some anticipations and personal predictions:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;SharePoint 2013 and Office 365 are going to further innovate Self-Service BI. Maybe that this process is not so fast as Microsoft hopes, but it’s a clear direction and I hope that new features in this area will appear with a sooner release cycle, we simply cannot wait other 3 years to get more features on the cloud.&lt;/li&gt;    &lt;li&gt;Mobile BI with Microsoft Technologies is going to be a real thing in 2013. And Office for iPad should be real, too. Power View for iPad as a native application is also another important step.&lt;/li&gt;    &lt;li&gt;I will speak at &lt;a href="http://www.passbaconference.com/"&gt;PASS BA Conference 2013&lt;/a&gt; in Chicago, IL (April 10-12, 2013) – at that time, I hope much of the MS Mobile BI tools will be available to anyone.&lt;/li&gt;    &lt;li&gt;In March 2013 our new PowerPivot book &lt;a href="http://www.amazon.com/dp/0735676348/?tag=se04-20"&gt;Microsoft Excel 2013: Building Data Models with PowerPivot&lt;/a&gt; will be published by Microsoft Press. We are working hard these days in order to complete the drafts, we listened to all of the feedback we received, especially from Excel users. Time will tell if we did a good job on that.&lt;/li&gt;    &lt;li&gt;We will publish other content on SQLBI web site and we have some interesting news for PowerPivot users and Tabular developers… but it’s too early to discuss that. Just stay tuned! Why not &lt;a href="http://www.sqlbi.com"&gt;registering to our newsletter&lt;/a&gt;? (hint – scroll down to the &lt;a href="http://www.sqlbi.com/"&gt;end of the page&lt;/a&gt; to insert your email)&lt;/li&gt;    &lt;li&gt;We will announce a new &lt;a href="http://www.powerpivotworkshop.com/"&gt;PowerPivot Workshop for Excel 2013&lt;/a&gt; (we are working on an updated web site – it should be ready by the end of January)&lt;/li&gt;    &lt;li&gt;In January we will announce new dates for our &lt;a href="http://www.sqlbi.com/training/"&gt;SSAS Tabular Workshop&lt;/a&gt; and the new DAX Advanced Workshop.&lt;/li&gt;    &lt;li&gt;I hope DAXMD will be released this year, it is &lt;a href="http://blogs.msdn.com/b/analysisservices/archive/2012/11/29/power-view-for-multidimensional-models-preview.aspx"&gt;already available as CTP&lt;/a&gt;. If you create canned reports for SSAS Multidimensional, consider using DAX as a query language when DAXMD will be released.&lt;/li&gt;    &lt;li&gt;DAX will be always more important…&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Economy is not going well in many countries, and I’ve seen this impacting also our ecosystem. Sometimes you might think that your efforts are worthless, but in the long term the investments in updating skills produces a good return, at both company and individual level. Don’t give up!&lt;/p&gt;  &lt;p&gt;I wish you a Great 2013!&lt;/p&gt;</description></item><item><title>Meet SQLBI at PASS Summit 2012 #sqlpass</title><link>http://sqlblog.com/blogs/marco_russo/archive/2012/11/02/meet-sqlbi-at-pass-summit-2012-sqlpass.aspx</link><pubDate>Fri, 02 Nov 2012 12:11:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:45864</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;Next week I and &lt;a href="http://sqlblog.com/blogs/alberto_ferrari/"&gt;Alberto Ferrari&lt;/a&gt; will be in Seattle at &lt;a href="http://www.sqlpass.org/summit/2012/"&gt;PASS Summit 2012&lt;/a&gt;. You can meet us at our sessions, at a book signing and hopefully watching some other session during the conference. Here are our appointments:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;em&gt;Thursday, November 08, 2012, 10:15 AM - 11:45 AM – Alberto Ferrari – Room 606-607       &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Querying and Optimizing DAX (BIA-321-S)       &lt;br /&gt;&lt;/strong&gt;Do you want to learn how to write DAX queries and how to optimize them? Don’t miss this session!      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Thursday, November 08, 2012, 12:00 PM - 12:30 PM – Bookstore       &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Book signing event at the Bookstore corner with Alberto Ferrari, Marco Russo and Chris Webb       &lt;br /&gt;&lt;/strong&gt;Visit the bookstore and sign your copy of our &lt;a href="http://www.amazon.com/gp/product/0735658188/?tag=se04-20"&gt;Microsoft SQL Server 2012 Analysis Services: The BISM Tabular Model&lt;/a&gt; book.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Thursday, November 08, 2012, 1:30 PM - 2:45 PM – Marco Russo – Room 611       &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Near Real-Time Analytics with xVelocity (without DirectQuery) (BIA-312)       &lt;br /&gt;&lt;/strong&gt;What’s the latency you can tolerate for your data? Discover what is the limit in Tabular without using DirectQuery and learn how to optimize your data model and your queries for a near real-time analytical system. Not a trivial task, but more affordable than you might think.      &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Friday, November 09, 2012, 9:45 AM - 11:00 AM       &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Parent-Child Hierarchies in Tabular (BIA-301)       &lt;br /&gt;&lt;/strong&gt;Multidimensional has a more advanced support for hierarchies than Tabular, but in reality you can do almost the same things by using data modeling, DAX functions and BIDS Helper!&amp;#160; &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Friday, November 09, 2012, 1:00 PM - 2:15 PM – Marco Russo – Room 612       &lt;br /&gt;&lt;/em&gt;&lt;strong&gt;Inside DAX Query Plans (BIA-403)       &lt;br /&gt;&lt;/strong&gt;Discover the query plan for your DAX query and learn how to read it and how to optimize a DAX query by using these information.&lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;If you meet us at the conference, stop us and say hello: it’s always nice to know our readers!&lt;/p&gt;</description></item><item><title>Optimize SUMMARIZE with ADDCOLUMNS in Dax #ssas #tabular #dax #powerpivot</title><link>http://sqlblog.com/blogs/marco_russo/archive/2012/09/04/optimize-summarize-with-addcolumns-in-dax-ssas-tabular-dax-powerpivot.aspx</link><pubDate>Tue, 04 Sep 2012 08:23:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:44966</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;If you started using DAX as a query language, you might have encountered some performance issues by using SUMMARIZE. The problem is related to the calculation you put in the SUMMARIZE, by adding what are called &lt;em&gt;extension columns&lt;/em&gt;, which compute their value within a filter context defined by the rows considered in the group that the SUMMARIZE uses to produce each row in the output.&lt;/p&gt;  &lt;p&gt;Most of the time, for simple table expressions used in the first parameter of SUMMARIZE, you can optimize performance by removing the extended columns from the SUMMARIZE and adding them by using an ADDCOLUMNS function. In practice, instead of writing&lt;/p&gt;  &lt;div class="line number1 index0 alt2"&gt;&lt;code class="dax color2"&gt;SUMMARIZE&lt;/code&gt;&lt;code class="dax plain"&gt;( &amp;lt;table&amp;gt;, &amp;lt;group_by_column&amp;gt;, &amp;lt;column_name&amp;gt;, &amp;lt;expression&amp;gt; )&lt;/code&gt;&lt;/div&gt;  &lt;p&gt;you can write:&lt;/p&gt;  &lt;p&gt;&lt;code&gt;ADDCOLUMNS&lt;/code&gt;&lt;code&gt;(     &lt;br /&gt;&lt;/code&gt;&lt;code&gt;&amp;#160;&amp;#160;&amp;#160; SUMMARIZE&lt;/code&gt;&lt;code&gt;( &amp;lt;table&amp;gt;, &amp;lt;group &lt;/code&gt;&lt;code&gt;by&lt;/code&gt; &lt;code&gt;column&amp;gt; ),     &lt;br /&gt;&lt;/code&gt;&lt;code&gt;&amp;#160;&amp;#160;&amp;#160; &amp;lt;column_name&amp;gt;, &lt;/code&gt;&lt;code&gt;CALCULATE&lt;/code&gt;&lt;code&gt;( &amp;lt;expression&amp;gt; )     &lt;br /&gt;&lt;/code&gt;&lt;code&gt;)&lt;/code&gt;&lt;/p&gt;  &lt;p&gt;The performance difference might be huge (orders of magnitude) but this optimization might produce a different semantic and in these cases it should not be used. A longer discussion of this topic is included in my &lt;a href="http://www.sqlbi.com/articles/best-practices-using-summarize-and-addcolumns/"&gt;Best Practices Using SUMMARIZE and ADDCOLUMNS&lt;/a&gt; article on &lt;a href="http://www.sqlbi.com/"&gt;SQLBI&lt;/a&gt;, which also include several details about the DAX syntax with extended columns. For example, did you know that you can create an extended column in SUMMARIZE and ADDCOLUMNS with the same name of existing measures? It is &lt;strong&gt;*not*&lt;/strong&gt; a good thing to do, and by reading the article you will discover why. Enjoy DAX!&lt;/p&gt;</description></item><item><title>DAX Studio 1.0 beta available #dax #tabular #powerpivot</title><link>http://sqlblog.com/blogs/marco_russo/archive/2012/07/30/dax-studio-1-0-beta-available-dax-tabular-powerpivot.aspx</link><pubDate>Mon, 30 Jul 2012 08:10:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:44486</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;Are you waiting for a usable and interactive DAX editor? Are you tired of using the MDX editor provided by SSMS as a temporary solution to write and execute a DAX query? The wait is over!&lt;/p&gt;  &lt;p&gt;&lt;a href="http://www.sqlbi.com/tools/dax-studio/"&gt;DAX Studio&lt;/a&gt; is a free Excel add-in that enables you to write a DAX query in a small dialog box that offer a productive environment, with a tabular object browser and syntax highlighting. You can drag and drop table and column names from the object browser to the editor, getting a proper DAX syntax for the objects (this is something that is not available in SSMS because you browse multidimensional data and the syntax used for objects is the MDX one). More interesting, you can run a query and project the result either in an Excel worksheet or in an independent table grid.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/marco_russo/daxstudio-preview_7792FF45.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="daxstudio-preview" border="0" alt="daxstudio-preview" src="http://sqlblog.com/blogs/marco_russo/daxstudio-preview_thumb_4788ADC4.png" width="793" height="490" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;You can connect to an embedded PowerPivot workbook or to an external Tabular model published on Analysis Services. You can find a longer introduction of DAX Studio in a &lt;a href="http://paultebraak.wordpress.com/2012/07/09/introducing-dax-studio/"&gt;blog post written by Paul te Braak&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;My favorite use of DAX Studio is writing and testing DAX measures. You can easily test them by using the DEFINE MEASURE syntax followed by a sample query that uses the local measure.&lt;/p&gt;  &lt;p&gt;&lt;a href="http://sqlblog.com/blogs/marco_russo/daxstudio-editmeasure_37996900.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="daxstudio-editmeasure" border="0" alt="daxstudio-editmeasure" src="http://sqlblog.com/blogs/marco_russo/daxstudio-editmeasure_thumb_559776F4.png" width="793" height="490" /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Once you are confident that the measure works well, you can copy and paste its definition into your PowerPivot or Tabular project.&lt;/p&gt;  &lt;p&gt;This is just a version 1.0 and we look forward to enhance the features in the future. This is a CodePlex project so you can participate as a developer, as a tester or by just providing &lt;a href="http://daxstudio.codeplex.com/workitem/list/advanced"&gt;your feedback&lt;/a&gt; about bugs and desired features.&lt;/p&gt;</description></item><item><title>Distinct Count of Customers in a SCD Type 2 in #DAX</title><link>http://sqlblog.com/blogs/marco_russo/archive/2012/04/09/distinct-count-of-customers-in-a-scd-type-2-in-dax.aspx</link><pubDate>Mon, 09 Apr 2012 20:55:25 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:42750</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;If you have a Slowly Changing Dimension (SCD) Type 2 for your customer and you want to calculate the number of distinct customers that bought a product, you cannot use the simple formula:&lt;/p&gt;  &lt;p&gt;Customers := DISTINCTCOUNT( FactTable[Customer Id] ) )&lt;/p&gt;  &lt;p&gt;because it would return the number of distinct versions of customers. What you really want to do is to calculate the number of distinct application keys of the customers, that could be a lower number than the number you’ve got with the previous formula. Assuming that a Customer Code column in the Customers dimension contains the application key, you should use the following DAX formula:&lt;/p&gt;  &lt;p&gt;Customers := COUNTROWS( SUMMARIZE( FactTable, Customers[Customer Code] ) )&lt;/p&gt;  &lt;p&gt;Be careful: only the version above is really fast, because it is solved by xVelocity (formerly known as VertiPaq) engine. Other formulas involving nested calculations might be more complex and move computation to the formula engine, resulting in slower query.&lt;/p&gt;  &lt;p&gt;This is absolutely an interesting pattern and I have to say it’s a killer feature. Try to do the same in Multidimensional…&lt;/p&gt;</description></item><item><title>#DAX Query Plan in SQL Server 2012 #Tabular</title><link>http://sqlblog.com/blogs/marco_russo/archive/2011/11/21/dax-query-plan-in-sql-server-2012-tabular.aspx</link><pubDate>Mon, 21 Nov 2011 12:15:00 GMT</pubDate><guid isPermaLink="false">21093a07-8b3d-42db-8cbf-3350fcbf5496:39885</guid><dc:creator>sqlbi</dc:creator><description>&lt;p&gt;The SQL Server Profiler provides you many information regarding the internal behavior of DAX queries sent to a BISM Tabular model. Similar to MDX, also in DAX there is a Formula Engine (FE) and a Storage Engine (SE). The SE is usually handled by Vertipaq (unless you are using DirectQuery mode) and &lt;strong&gt;Vertipaq SE Query&lt;/strong&gt; classes of events gives you a SQL-like syntax that represents the query sent to the storage engine.&lt;/p&gt;  &lt;p&gt;Another interesting class of events is the &lt;strong&gt;DAX Query Plan&lt;/strong&gt;, which contains a couple of subclasses (Logical Plan and Physical Plan). I’d like to know more about internals of query plans, but there is still no documentation on that. However, you can still get some hint by observing its content for different DAX queries returning the same results.&lt;/p&gt;  &lt;p&gt;For example, you should know that using &lt;strong&gt;RELATEDTABLE( table )&lt;/strong&gt; returns the same as &lt;strong&gt;CALCULATETABLE( table )&lt;/strong&gt;. (in case you don’t know, read my &lt;a href="http://www.amazon.com/dp/0735640580/?tag=se04-20"&gt;PowerPivot book&lt;/a&gt; – DAX is coming, learning it early on PowerPivot is smart move.) But are they really equal? Should we prefer one against the other? By examining the SQL Profiler events, now I can say they are identical.&lt;/p&gt;  &lt;p&gt;For example, this query:&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;font face="Consolas"&gt;&lt;span style="font-family:;color:;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;EVALUATE&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;"&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;font face="Consolas"&gt;&lt;span style="font-family:;color:;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;ADDCOLUMNS&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;"&gt;&lt;font style="font-size:9.5pt;"&gt;( &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;'Product Category'&lt;/font&gt;&lt;/span&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;&amp;quot;SubCategories&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;COUNTROWS&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;RELATEDTABLE&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;'Product Sub-Category'&lt;/font&gt;&lt;/span&gt; ) ),&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;&amp;quot;Products&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;COUNTROWS&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;RELATEDTABLE&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;'Product'&lt;/font&gt;&lt;/span&gt; ) ) )&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;produces exactly the same query plan (and calls to the storage engine) as the following one:   &lt;br /&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;font face="Consolas"&gt;&lt;span style="font-family:;color:;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;EVALUATE&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;"&gt;&lt;font style="font-size:9.5pt;"&gt; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;font face="Consolas"&gt;&lt;span style="font-family:;color:;"&gt;&lt;font color="#0000ff"&gt;&lt;font style="font-size:9.5pt;"&gt;ADDCOLUMNS&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;span style="font-family:;"&gt;&lt;font style="font-size:9.5pt;"&gt;( &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;'Product Category'&lt;/font&gt;&lt;/span&gt;,&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;&amp;quot;SubCategories&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;COUNTROWS&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;CALCULATETABLE&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;'Product Sub-Category'&lt;/font&gt;&lt;/span&gt; ) ),&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="line-height:normal;list-style-type:disc;margin:0cm 0cm 0pt;text-autospace:;mso-layout-grid-align:none;" class="MsoNormal" align="left"&gt;&lt;span style="font-family:;"&gt;&lt;font face="Consolas"&gt;&lt;span style="mso-spacerun:yes;"&gt;&lt;font style="font-size:9.5pt;"&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/font&gt;&lt;/span&gt;&lt;font style="font-size:9.5pt;"&gt;&lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;&amp;quot;Products&amp;quot;&lt;/font&gt;&lt;/span&gt;, &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;COUNTROWS&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#0000ff"&gt;&lt;strong&gt;CALCULATETABLE&lt;/strong&gt;&lt;/font&gt;&lt;/span&gt;( &lt;span style="color:;"&gt;&lt;font color="#a31515"&gt;'Product'&lt;/font&gt;&lt;/span&gt; ) ) )&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p&gt;At this point, my suggestion is to favor the semantic – if you don’t have to put other filters, use RELATEDTABLE to simply follow the relationship!&lt;/p&gt;  &lt;p&gt;Now back to writing the &lt;a href="http://www.sqlbi.com/books/microsoft-sql-server-2012-analysis-services-the-bism-tabular-model/"&gt;next book on BISM Tabular&lt;/a&gt;…&lt;/p&gt;</description></item></channel></rss>