<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>ixto-Blog &#187; Analysis Services 2005</title>
	<atom:link href="http://www.ixto.de/blog/category/sql-server-2005/analysis-services-2005/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.ixto.de/blog</link>
	<description>Business Intelligence, Database Consulting, Software Development</description>
	<lastBuildDate>Mon, 26 Sep 2011 09:23:18 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SSAS 2005 MDX Simple CASE WHEN &#8211; Probleme im ELSE Zweig</title>
		<link>http://www.ixto.de/blog/sql-server-2005/analysis-services-2005/ssas-2005-mdx-simple-case-when-probleme-im-else-zweig/</link>
		<comments>http://www.ixto.de/blog/sql-server-2005/analysis-services-2005/ssas-2005-mdx-simple-case-when-probleme-im-else-zweig/#comments</comments>
		<pubDate>Thu, 11 Nov 2010 16:06:26 +0000</pubDate>
		<dc:creator>Marcel Ebner</dc:creator>
				<category><![CDATA[Analysis Services 2005]]></category>

		<guid isPermaLink="false">http://www.ixto.de/blog/?p=275</guid>
		<description><![CDATA[Manchmal, aus welch guten oder schlechten Gründen auch immer, muss man in berechneten Measures eines SSAS 2005 Cubes mehrere Zustände eines Members unterschiedlich behandeln. Dies erreicht man durch die Verwendung von IIF Statements, oder, ein wenig bequemer, durch die Verwendung von CASE WHEN Statements.

Das CASE WHEN Statement  wird in zwei Typen unterteilt:
A) “Simple” CASE:
CASE [MyValue]
  [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal, aus welch guten oder schlechten Gründen auch immer, muss man in berechneten Measures eines SSAS 2005 Cubes mehrere Zustände eines Members unterschiedlich behandeln. Dies erreicht man durch die Verwendung von IIF Statements, oder, ein wenig bequemer, durch die Verwendung von CASE WHEN Statements.<br />
<span id="more-275"></span></p>
<p>Das CASE WHEN Statement  wird in zwei Typen unterteilt:</p>
<p>A) “Simple” CASE:</p>
<p>CASE [MyValue]<br />
  WHEN 100 THEN „Small“<br />
  WHEN 1000 THEN “Middle”<br />
  WHEN 10000 THEN “Large”<br />
ELSE “Micro” END</p>
<p>B) “Searched” CASE:</p>
<p>CASE<br />
  WHEN [MyValue] = 100 THEN „Small“<br />
  WHEN [MyValue] = 1000 THEN “Middle”<br />
  WHEN [MyValue] = 10000 THEN “Large”<br />
ELSE “Micro”<br />
END</p>
<p>Wie Chris Webb in seinem <a href="http://cwebbbi.wordpress.com/2009/12/09/simple-vs-searched-case-statements/">BI-Blog</a> mitteilt, ist die Verwendung von Simple CASE performanter als Searched CASE, allerdings kann in der SQL Server Version 2005 die Verwendung von Simple CASE unter gewissen Umständen fehlerhafte Ergebnisse im ELSE Zweig erzeugen.</p>
<p>Voraussetzung dafür ist, dass in irgendeinem der Zweige ein anderes, berechnetes Measure benutzt wird, welches wiederum aus einem Tupel mit mindestens einer Dimensionsreferenz bestehen muss. Bsp:</p>
<p><span style="color: #0000ff;">CREATE MEMBER CURRENTCUBE</span>.[Measures].TestCalc <span style="color: #0000ff;">AS</span></p>
<p>([Date].[Calendar Year].&amp;[2003],[Measures].[Sales Amount]),</p>
<p><span style="color: #0000ff;">Visible</span>=1,<span style="color: #0000ff;">FORMAT_STRING</span>=<span style="color: #a30000;">&#8220;#,###0.00&#8243;</span>;</p>
<p>Folgend die Definition eines berechneten Elements mit einer SIMPLE CASE Entscheidung auf Basis der AdventureWorks DW 2005 OLAP Datenbank:<br />
<em>(Ich bitte den Sinn der angeführten Berechnungen in den Hintergrund zu stellen … <img src='http://www.ixto.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </em></p>
<p><span style="color: #0000ff;">CREATE MEMBER CURRENTCUBE</span>.[Measures].SimpleCase <span style="color: #0000ff;">AS</span></p>
<p><span style="color: #0000ff;">CASE</span> [Date].[Calendar Year].<span style="color: #a30000;">CURRENTMEMBER</span></p>
<p>    <span style="color: #0000ff;">WHEN</span> [Date].[Calendar Year].&amp;[2002] <span style="color: #0000ff;">THEN</span></p>
<p>      ([Product].[Product Line].&amp;[S],[Measures].TestCalc)</p>
<p>    + ([Product].[Product Line].&amp;[],[Measures].TestCalc)</p>
<p>    <span style="color: #0000ff;">WHEN</span> [Date].[Calendar Year].&amp;[2003] <span style="color: #0000ff;">THEN</span></p>
<p>      ([Product].[Product Line].&amp;[],[Measures].[Sales Amount])</p>
<p>    + ([Product].[Product Line].&amp;[S],[Measures].[Sales Amount])</p>
<p>    <span style="color: #0000ff;">ELSE</span>   <span style="color: #008000;">&#8211; &#8220;Any other year – Product line MOUNTAIN</span></p>
<p>      ([Product].[Product Line].&amp;[M],[Measures].[Sales Amount])</p>
<p><span style="color: #0000ff;">END</span>,</p>
<p><span style="color: #0000ff;">Visible</span>=1,<span style="color: #0000ff;">FORMAT_STRING</span>=<span style="color: #a30000;">&#8220;#,###0.00&#8243;</span>;</p>
<p>Das Measure summiert die Produktlinien „Accessorys“ und „Components“ in den Pfaden 2002 und 2003, benutzt im Pfad für das Jahr 2002 das Measure „TestCalc“ und zeigt im ELSE Zweig den Sales Amount der Produktinie „Mountain“ an.<em> </em></p>
<p>Ein berechnetes Element mit Verwendung der Searched CASE Variante würde dann wie folgt definiert werden müssen:</p>
<p><span style="color: #0000ff;">CREATE MEMBER CURRENTCUBE</span>.[Measures].SearchedCase <span style="color: #0000ff;">AS</span></p>
<p><span style="color: #0000ff;">CASE</span></p>
<p>    <span style="color: #0000ff;">WHEN</span> [Date].[Calendar Year].<span style="color: #a30000;">CURRENTMEMBER</span></p>
<p>     <span style="color: #0000ff;">IS</span> [Date].[Calendar Year].&amp;[2002] <span style="color: #0000ff;">THEN</span></p>
<p>     ([Product].[Product Line].&amp;[S],[Measures].TestCalc)</p>
<p>   + ([Product].[Product Line].&amp;[],[Measures].TestCalc)</p>
<p>    <span style="color: #0000ff;">WHEN</span> [Date].[Calendar Year].<span style="color: #a30000;">CURRENTMEMBER</span></p>
<p>      <span style="color: #0000ff;">IS</span> [Date].[Calendar Year].&amp;[2003] <span style="color: #0000ff;">THEN</span></p>
<p>      ([Product].[Product Line].&amp;[S],[Measures].[Sales Amount])</p>
<p>    + ([Product].[Product Line].&amp;[],[Measures].[Sales Amount])</p>
<p>    <span style="color: #0000ff;">ELSE</span>   <span style="color: #008000;">&#8211; &#8220;Any other year – Product line MOUNTAIN</span></p>
<p>     ([Product].[Product Line].&amp;[M],[Measures].[Sales Amount])</p>
<p>    <span style="color: #0000ff;">END</span>,</p>
<p><span style="color: #0000ff;">Visible</span>=1,<span style="color: #0000ff;">FORMAT_STRING</span>=<span style="color: #a30000;">&#8220;#,###0.00&#8243;</span>;</p>
<p>Das Ergebnis ist verblüffend, zieht man beide berechneten Member in die Abfrage eines Cubebrowsers:</p>
<p>Zeilen   : Dimension Promotion, Attribut Promotion<br />
Filter    : Date.Calendar Year = 2004; Product.Product Line = Mountain</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/me_ssas_05.jpg" alt="" /></p>
<p>Wie man sieht, wird die Gesamtsumme in beiden Membern korrekt angezeigt, im Simple CASE Measure werden jedoch die Ergebnisse für die unteren beiden Zeilen NICHT angezeigt. Das Phänomen / Bug tritt NUR im SQL Server 2005 auf und NUR bei Verwendung eines berechneten Measures mit o.g. Bedingungen in irgendeinem der CASE Zweige.</p>
<p>Gefährlich bleibt es trotzdem, kontrolliert man nämlich nur die Gesamtsummen (was der eine oder andere Developer aus Zeitgründen sicher schon mal getan hat), fällt der Fehler eben NICHT auf.</p>
<p>Deswegen:</p>
<p>Checkt Eure CASE WHEN Member! Vor allem darauf ob Ihr Euch die Verwendung nicht ganz sparen wollt/könnt <img src='http://www.ixto.de/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://www.ixto.de/blog/sql-server-2005/analysis-services-2005/ssas-2005-mdx-simple-case-when-probleme-im-else-zweig/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SSAS 2005 MDX Tuning – unnötige MEMBER und fast noch schlimmer: STRTOMEMBER</title>
		<link>http://www.ixto.de/blog/sql-server-2005/ssas-2005-mdx-tuning-%e2%80%93-unnotige-member-und-fast-noch-schlimmer-strtomember/</link>
		<comments>http://www.ixto.de/blog/sql-server-2005/ssas-2005-mdx-tuning-%e2%80%93-unnotige-member-und-fast-noch-schlimmer-strtomember/#comments</comments>
		<pubDate>Fri, 18 Dec 2009 16:29:55 +0000</pubDate>
		<dc:creator>Marcel Ebner</dc:creator>
				<category><![CDATA[Analysis Services 2005]]></category>
		<category><![CDATA[SQL Server 2005]]></category>

		<guid isPermaLink="false">http://www.ixto.de/blog/sql-server-2005/ssas-2005-mdx-tuning-%e2%80%93-unnotige-member-und-fast-noch-schlimmer-strtomember/</guid>
		<description><![CDATA[&#8220;Das beste MDX ist das, das man nicht schreibt&#8221; (über den Buschfunk: Mosha Pasumansky)
Aber wer kommt denn auf die Idee, dass dieses Zitat wortwörtlich zu nehmen ist?
Ich sah mich mit einer Kundendimension von 172.000 Kunden konfrontiert, die etwa 200 Vertretern zugeordnet waren. Ergebnis der Abfrage sollten die Kunden sein, die in einem gewissen Monat keine [...]]]></description>
			<content:encoded><![CDATA[<p>&#8220;Das beste MDX ist das, das man nicht schreibt&#8221; (über den Buschfunk: Mosha Pasumansky)</p>
<p>Aber wer kommt denn auf die Idee, dass dieses Zitat wortwörtlich zu nehmen ist?</p>
<p>Ich sah mich mit einer Kundendimension von 172.000 Kunden konfrontiert, die etwa 200 Vertretern zugeordnet waren. Ergebnis der Abfrage sollten die Kunden sein, die in einem gewissen Monat keine Umsätze, dafür aber im Rest des Jahres Umsätze erzielt hatten.</p>
<p><span id="more-77"></span><br />
<br />
 Übersetzt in den AdventureWorks Cube, wobei der Vertreter hier durch die Dimension &#8220;Produkt&#8221; ersetzt wird, sah die Abfrage zuerst so aus:</p>
<p><span style="font-family: Courier New; color: blue; font-size: 10pt;">WITH<br />
</span></p>
<p><span style="font-family: Courier New;"><span style="font-size: 10pt;"><span style="color: blue;">MEMBER</span><br />
</span><span style="color: #c00000; font-size: 12pt; text-decoration: underline;"><strong><em>UmsatzDezember03</em></strong></span><span style="font-size: 10pt;"><br />
<span style="color: blue;">AS</span><br />
</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">(<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    [Measures].[Internet Sales Amount]<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    ,<span style="color: maroon;">STRTOMEMBER</span>(&#8216;[Date].[Calendar].[Month].&amp;[2003]&amp;[12]&#8216;, <span style="color: blue;">CONSTRAINED</span>)<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">)<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">SET</span> Kunden <span style="color: blue;">AS</span><br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: maroon;">EXCEPT</span>(<span style="color: maroon;">EXISTS<br />
</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">(<span style="color: maroon;">NONEMPTY</span>([Customer].[Customer].[Customer].<span style="color: blue;">MEMBERS<br />
</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">        ,[Measures].[Internet Sales Amount])<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">        ,[Product].[Product Categories].[Category].&amp;[1])<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">,<span style="color: maroon;">NONEMPTY</span>([Customer].[Customer].[Customer].<span style="color: blue;">MEMBERS<br />
</span></span></p>
<p><span style="font-family: Courier New;"><span style="font-size: 10pt;">    ,</span><span style="color: #c00000; font-size: 12pt; text-decoration: underline;"><strong><em>UmsatzDezember03</em></strong></span><span style="font-size: 10pt;">))<br />
</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><br />
<span style="color: blue;">SELECT</span><br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">{<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    [Measures].[Internet Sales Amount]<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">} <span style="color: blue;">ON</span> 0,<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">{<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    Kunden<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">} <span style="color: blue;">ON</span> 1 <span style="color: blue;">FROM</span> [Adventure Works]<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><br />
<span style="color: blue;">WHERE</span> [Date].[Calendar].[Calendar Year].&amp;[2003]<br />
</span><br />
<br\><br />
Um der besseren Lesbarkeit willen erstellte ich das berechnete MEMBER UmsatzDezember03 um das &#8211; zugegeben etwas komplizierte – Kundenset zu filtern.<br />
<br\><br />
Die ursprüngliche Abfrage (nicht das Beispiel hier) benötigte 45 Sekunden, was bei einer so kleinen Dimension von 172.000 Membern nicht akzeptabel war. Query-Tuning war also unumgänglich.<br />
<br\><br />
Nehmen wir uns des Beispiels oben an: Diese Abfrage &#8211; mit <a href="http://cid-74f04d1ea28ece4e.skydrive.live.com/self.aspx/MDXStudio/v0.4.12/MDXStudio2005.zip">&#8220;MDX Studio&#8221;</a> auf dem AdventureWorks Cube ausgeführt &#8211; berechnete 44.240 Zellen und benötigte 2,6 Sekunden für die Ausführung.<br />
<br\><br />
Mosha&#8217;s Befehl zur Sparsamkeit gehorchend, verzichtete ich auf das Hilfsmember und brachte den Ausdruck für UmsatzDezember03 direkt in das Kundenset.</p>
<p><span style="font-family: Courier New; color: blue; font-size: 10pt;">WITH<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: blue;">SET</span> Customers <span style="color: blue;">AS</span><br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><span style="color: maroon;">EXCEPT</span>(<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    <span style="color: maroon;">EXISTS</span>(<span style="color: maroon;">NONEMPTY</span>([Customer].[Customer].[Customer].<span style="color: blue;">MEMBERS<br />
</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">                ,[Measures].[Internet Sales Amount])<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">        ,[Product].[Product Categories].[Category].&amp;[1])<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">,<span style="color: maroon;">NONEMPTY</span>([Customer].[Customer].[Customer].<span style="color: blue;">MEMBERS<br />
</span></span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    ,(<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    [Measures].[Internet Sales Amount]<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    ,<span style="color: maroon;">STRTOMEMBER</span>(&#8216;[Date].[Calendar].[Month].&amp;[2003]&amp;[12]&#8216;,<span style="color: blue;"> CONSTRAINED</span>)<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">)))<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><br />
<span style="color: blue;">SELECT</span><br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">{<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    [Measures].[Internet Sales Amount]<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">} <span style="color: blue;">ON</span> 0,<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">{<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">    Customers<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;">} <span style="color: blue;">ON</span> 1 <span style="color: blue;">FROM</span> [Adventure Works]<br />
</span></p>
<p><span style="font-family: Courier New; font-size: 10pt;"><br />
<span style="color: blue;">WHERE</span> [Date].[Calendar].[Calendar Year].&amp;[2003]</span><br />
<br\><br />
Dies führte zu einer Berechnung von nur 7.272 Zellen, benötigte aber immer noch 2,6 Sekunden für die Ausführung. Nachdem ich mir auch das <span style="font-family: Courier New; color: blue; font-size: 10pt;">CONSTRAINED</span> Flag in der <span style="color: maroon;">STRTOMEMBER </span>Funktion erspart hatte, lag die Ausführungszeit bei 0,6 Sekunden.<br />
<br\><br />
Was war passiert? Offensichtlich führte das Einfügen des berechneten Members UmsatzDezember03 dazu, das die Berechnung für den Term <span style="font-family: Courier New;"><span style="font-size: 10pt;"><span style="color: maroon;">NONEMPTY</span>([Customer].[Customer].[Customer].<span style="color: blue;">MEMBERS</span>,</span><span style="color: #c00000; font-size: 12pt; text-decoration: underline;"><strong><em>UmsatzDezember03</em></strong></span><span style="font-size: 10pt;">)</span></span> für <strong>jedes</strong> einzelne Member der Kundendimension ausgeführt wurde – d.h. je mehr Member in der Dimension enthalten sind, desto langsamer wird die Abfrage.<br />
<br\><br />
Darüber hinaus ist festzustellen, dass das CONSTRAINED Flag die Query ebenfalls verlangsamt – was uns zu dem Schluss führt, das Mosha&#8217;s Zitat tatsächlich wortwörtlich zu nehmen ist. Allein das Einsparen der Worte &#8220;MEMBER, AS, STRTOMEMBER und CONSTRAINED&#8221; führt in obigem Beispiel zu einer Beschleunigung der Abfrage von 500% und zu einer 86%-igen Reduktion der berechneten Zellen.<span style="font-family: Courier New; color: blue; font-size: 10pt;"><br />
</span><br />
<br\><br />
In den Analysis Services 2008 tritt dieses Problem nicht mehr auf. &#8220;Hilfsmember&#8221; können hier ohne Scham verwendet werden. Beide auf einem SQL Server 2008 ausgeführten Abfragen berechneten nur die nötigen 7.272 Zellen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ixto.de/blog/sql-server-2005/ssas-2005-mdx-tuning-%e2%80%93-unnotige-member-und-fast-noch-schlimmer-strtomember/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Excel 2010 &#8211; Comeback des OLAP-Writebacks</title>
		<link>http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/</link>
		<comments>http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/#comments</comments>
		<pubDate>Thu, 01 Oct 2009 12:29:28 +0000</pubDate>
		<dc:creator>Markus Schechner</dc:creator>
				<category><![CDATA[Analysis Services 2005]]></category>
		<category><![CDATA[Analysis Services 2008]]></category>
		<category><![CDATA[SQL Server 2005]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[Excel 2010]]></category>
		<category><![CDATA[Olap]]></category>
		<category><![CDATA[Writeback]]></category>

		<guid isPermaLink="false">http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/</guid>
		<description><![CDATA[Hallo zusammen,

ich habe in einer Feature-Liste für das neue Excel 2010 etwas gelesen, was ich unbedingt mal ausprobieren musste: Das allseits gefürchtete/geliebte Writeback für OLAP-Cubes kommt zurück.

Meine Ergebnisse möchte ich Euch natürlich nicht vorenthalten. Ich habe mir in einem 2008er Cube (Adventure Works 2008) eine kleine, einfache Partition mit Planzahlen gebaut und habe dort das [...]]]></description>
			<content:encoded><![CDATA[<p>Hallo zusammen,<br />
<br\><br />
ich habe in einer Feature-Liste für das neue Excel 2010 etwas gelesen, was ich unbedingt mal ausprobieren musste: Das allseits gefürchtete/geliebte Writeback für OLAP-Cubes kommt zurück.<br />
<br\><br />
Meine Ergebnisse möchte ich Euch natürlich nicht vorenthalten. Ich habe mir in einem 2008er Cube (Adventure Works 2008) eine kleine, einfache Partition mit Planzahlen gebaut und habe dort das Writeback im Modus ROLAP aktiviert (die AS können das mit dem Zurückschreiben übrigens durchweg seit mind. Version 2000 und mit dem Excel Add-in for SQL Server Analysis Services konnte man das sogar schon mal benutzen).</p>
<p><span id="more-70"></span><br />
<br\><br />
Dann habe ich mich mit Excel 2010 auf diesen Cube verbunden und die &#8220;What-If-Analyis&#8221; aktiviert.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co1.png" alt="" /><br />
<br\><br />
Folgende Settings habe ich genommen.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co2.png" alt="" /><br />
<br\><br />
Dann hab ich mein Measure mit zwei Dimensionen in die Pivot-Tabelle gepackt…</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co3.png" alt="" /><br />
<br\><br />
… und den Wert für Europa erhöht.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co4.png" alt="" /><br />
<br\><br />
Nach dem Neuberechnen der Pivot-Tabelle haben sich alle zugehörigen Werte erhöht.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co5.png" alt="" /><br />
<br\><br />
Allerdings ist das ganze bis dahin nur eine Art Simulation. Erst wenn man es explizit sagt, werden die Änderungen in den Cube übernommen.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co6.png" alt="" /><br />
<br\><br />
Dort landen sie dann in der vorher definierten Tabelle.</p>
<p><img src="http://blog.ixtoprod.s15244651.onlinehome-server.info/blogbilder/093009_1024_Excel2010Co7.png" alt="" /><br />
<br\><br />
Nett, oder? Und die aus alten Zeiten bekannten Performanceprobleme beim Writeback auf größere Datenmengen sollen seit SQL Server 2008 auch der Vergangenheit angehören, da nicht mehr nur ROLAP, sondern auch MOLAP unterstützt wird. Das kann man aber auf einer Adventure Works schlecht überprüfen.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.ixto.de/blog/sql-server-2005/excel-2010-comeback-des-olap-writebacks/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

