<?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>Blog BI Microsoft de Patrice Harel</title>
	<atom:link href="https://blog.developpez.com/patriceharel/feed" rel="self" type="application/rss+xml" />
	<link>https://blog.developpez.com/patriceharel</link>
	<description></description>
	<lastBuildDate>Wed, 05 Jan 2011 10:01:30 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>https://wordpress.org/?v=4.1.42</generator>
	<item>
		<title>Migration de mon blog</title>
		<link>https://blog.developpez.com/patriceharel/p9636/autre/migration_de_mon_blog</link>
		<comments>https://blog.developpez.com/patriceharel/p9636/autre/migration_de_mon_blog#comments</comments>
		<pubDate>Wed, 05 Jan 2011 10:01:30 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[Autre]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Pour cette nouvelle année, nouvelle plateforme de blog. Retrouvez dorénavant mes billets sur http://patriceharel.blogspot.com]]></description>
				<content:encoded><![CDATA[<p>Pour cette nouvelle année, nouvelle plateforme de blog. Retrouvez dorénavant mes billets sur <a href="http://patriceharel.blogspot.com">http://patriceharel.blogspot.com</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changer la base SSAS par défaut</title>
		<link>https://blog.developpez.com/patriceharel/p9588/ssas/changer_la_base_ssas_par_defaut</link>
		<comments>https://blog.developpez.com/patriceharel/p9588/ssas/changer_la_base_ssas_par_defaut#comments</comments>
		<pubDate>Fri, 17 Dec 2010 16:29:53 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Voici le problème auquel j’ai été confronté : des utilisateurs requêtant AS via Excel, disposent d’une chaîne de connexion sur cette instance AS sans avoir précisé la base de données (mot clé Catalog absent de la connection string : à éviter). Après quelques heures d’utilisation, ils se rendent compte que leurs chiffres ne sont pas bons et pour cause. La veille, de nouvelles versions de leurs bases de données avaient été livrées dans un ordre [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Voici le problème auquel j’ai été confronté : des utilisateurs requêtant AS via Excel, disposent d’une chaîne de connexion sur cette instance AS sans avoir précisé la base de données (mot clé <strong>Catalog absent de la connection string</strong> : à éviter). Après quelques heures d’utilisation, ils se rendent compte que leurs chiffres ne sont pas bons et pour cause. La veille, de  nouvelles versions de leurs bases de données avaient été livrées dans un ordre qui, je ne sais pas pourquoi, a fait changer la <strong>base dite par défaut</strong>. Du coup, leurs requêtes attaquaient la mauvaise base de données (le Catalog n’étant pas précisé, la base par défaut est utilisée).</p>
<p><strong>Ma question</strong> : comment déterminer la base qui est utilisée par défaut par notre instance ? Sur SQL, une requête du type <em>Exec sp_defaultdb @loginame=&rsquo;monLogin&rsquo;, @defdb=&rsquo;maBase&rsquo;</em> permet de modifier ce paramètre facilement. Je n’ai pas trouvé l’équivalent sur SSAS, en tous les cas pas en 2005 (je n’ai pas regardé pour 2008 et 2008R2).</p>
<p><span id="more-9"></span></p>
<p>En fouillant un peu dans les fichiers xml d’AS, j’ai trouvé la solution. Chaque base de données possède un fichier qualifié de « référence » pour l’ensemble de l’instance. Le nom de ce fichier est de la forme NomDeMaBaseAS.db.xml. Il contient entre autre le nom et l’ID de la base, les paramètres de traduction, les annotations, etc. Il contient également une propriété qui se nomme <strong>Ordinal</strong>, et qui précise justement la place de la base de données parmi les autres via un numéro. Si l’ordinal est 0, cette base sera la première, 1 la seconde et ainsi de suite. La base possédant le plus petit ordinal sera celle qui sera considérée comme étant celle par défaut. Il suffit donc de s’arranger pour que la base que vous souhaitez définir comme étant celle par défaut possède le plus petit ordinal. Fastidieux quand il y a beaucoup de base de données (une petite astuce pour éviter d&rsquo;avoir à parcourir tous les fichiers pour trouver le plus petit ordinal consiste à donner une valeur négative à l&rsquo;ordinal de la base par défaut : ça marche). C’est pour cela que si jamais vous connaissez une autre solution, je suis preneur. Autre précision, je ne sais pas comment sont déterminés ces ordinaux au moment des déploiements.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extraire votre script XMLA de création de base SSAS en AMO</title>
		<link>https://blog.developpez.com/patriceharel/p9495/ssas/extraire_votre_script_xmla_de_creation_d</link>
		<comments>https://blog.developpez.com/patriceharel/p9495/ssas/extraire_votre_script_xmla_de_creation_d#comments</comments>
		<pubDate>Tue, 16 Nov 2010 10:37:10 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[On m’a demandé il n’y a pas longtemps s’il était possible de récupérer le script de création d’une base AS. Bien entendu, Managment Studio permet de le faire simplement. Mais dans le cas qui nous intéresse, le script de création devait être récupéré lors des backups, donc de manière automatisée. Pour cela, il y a des classes en AMO qui permettent de le faire assez facilement. Un code du genre de celui-ci-dessous vous en donne [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>On m’a demandé il n’y a pas longtemps s’il était possible de récupérer le script de création d’une base AS. Bien entendu, Managment Studio permet de le faire simplement. Mais dans le cas qui nous intéresse, le script de création devait être récupéré lors des backups, donc de manière automatisée.<br />
Pour cela, il y a des classes en AMO qui permettent de le faire assez facilement. Un code du genre de celui-ci-dessous vous en donne un exemple :</p>
<p><span id="more-8"></span></p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&nbsp; srv.Connect(&quot;MonServeur\MonInstanceAS&quot;); <br />
&nbsp; Database db = srv.Databases.FindByName(&quot;MaBaseAS&quot;); <br />
&nbsp; Scripter scripter = new Scripter(); <br />
&nbsp; System.Xml.XmlTextWriter xmlWriter = new System.Xml.XmlTextWriter(&quot;C:\\MonScript.xml&quot;, Encoding.UTF8); <br />
&nbsp; Scripter.WriteCreate (xmlWriter ,srv,db,true, true); <br />
&nbsp; xmlWriter.Close();</div></div>
<p>Les deux derniers paramètres de la méthode WriteCreate de votre Scripter sont :</p>
<p><strong>fullExpanded :</strong></p>
<ul>
<li>false :le script ne contriendra que la création de la base</li>
<li>true : il incluera tous les objets de votre base (dimensions, cubes, etc.)</li>
</ul>
<p><strong>allowOverwrite :</strong></p>
<ul>
<li>false : lors de l’exécution du script, si la base existe, elle ne sera pas écrasée</li>
<li>true : c’est l’inverse</li>
</ul>
<p>L’objet Scripter possède bien d’autres méthodes que vous pouvez retrouver sur le net ou dans le livre MS SQL Server Analysis Services Unleashed.</p>
<p>Si jamais il y en a qui aime se prendre la tête, vous pouvez aussi « parser » le résultat d’une requête XMLA comme DISCOVER_XML_METADATA qui contient lui aussi toute la description de votre base (je dis ça parce que c’est ce que je cherchais à faire au début).</p>
<p>Source :<br />
MS SQL Server Analysis Services Unleashed (chapitre 34, p 694)</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Passage du MCT</title>
		<link>https://blog.developpez.com/patriceharel/p9555/autre/passage_du_mct</link>
		<comments>https://blog.developpez.com/patriceharel/p9555/autre/passage_du_mct#comments</comments>
		<pubDate>Fri, 03 Dec 2010 12:40:37 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[Autre]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Aller hop, un autre sujet que SSAS pour changer. Je viens de passer avec succès ma certification MCT (Microsoft Certified Trainer). Pour info, cette certification est indispensable pour pouvoir dispenser des cours officiels Microsoft (ça tombe bien, j’avais ambitionné de devenir professeur de physique-chimie à la sortie du Bac). Bien entendu, la partie qui va me concerner, c&#8217;est la BI (il faut d&#8217;ailleurs être MCITP avant d&#8217;être MCT, pour SQL Server 2008, ce sont les [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Aller hop, un autre sujet que SSAS pour changer. Je viens de passer avec succès ma certification MCT (Microsoft Certified Trainer). Pour info, cette certification est indispensable pour pouvoir dispenser des cours officiels Microsoft (ça tombe bien, j’avais ambitionné de devenir professeur de physique-chimie à la sortie du Bac). Bien entendu, la partie qui va me concerner, c&rsquo;est la BI (il faut d&rsquo;ailleurs être MCITP avant d&rsquo;être MCT, pour SQL Server 2008, ce sont les certifications 70-448 et 70-452 pour la BI).<br />
L&rsquo;examen se compose de deux parties. La première consiste en un QCM qui propose 10 situations conflictuelles à gérer, auxquelles il faut trouver le bon comportement à adopter. Par exemple, une situation du type : un étudiant ne se sent pas concerné par ce que vous raconter, comment le réintégrer au groupe?<br />
La seconde partie est une présentation d’un sujet technique en 15 minutes. Le sujet sur lequel je suis tombé est « la présentation du panneau de configuration ». Autant dire que vous ne serez pas évalués sur vos connaissances, mais bel et bien sur la forme de votre prestation orale.</p>
<p>Les points clés pour une certification réussie :</p>
<ul>
<li>Une bonne présentation orale (prestance, voix, ton, mouvement dans la salle, etc.)</li>
<li>Un brin de diplomatie dans la gestion des conflits (pour le QCM)</li>
<li>Un support de formation propre (Power Point, à préparer par vos soins avant le passage de la certification)</li>
<li>Une attention particulière à vos étudiants (est-ce qu’ils suivent, est ce qu’ils ont tout compris)</li>
<li>Interaction avec votre auditoire</li>
</ul>
<p>Si certains d’entre vous se sentent l’âme d’un formateur…</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HardMemoryLimit sur SSAS 2008</title>
		<link>https://blog.developpez.com/patriceharel/p9331/ssas/hardmemorylimit_sur_ssas_2008</link>
		<comments>https://blog.developpez.com/patriceharel/p9331/ssas/hardmemorylimit_sur_ssas_2008#comments</comments>
		<pubDate>Tue, 28 Sep 2010 12:19:18 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Si comme moi vous faites (encore) du tunning d&#8217;instances SSAS 2005, vous connaissez certainement les propriétés LowMemoryLimit (LML) et TotalMemoryLimit (TML). L&#8217;objet de ce billet n&#8217;est donc pas de présenter la fonction de ces deux éléments : pour cela vous trouverez des informations ici (page 92). Edit du 08/10/2010 : Je viens de tomber sur un post du très bon blog de François Jehl qui explique les subtilités de ce paramétrage : voir ici AS [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Si comme moi vous faites (encore) du tunning d&rsquo;instances SSAS 2005, vous connaissez certainement les propriétés LowMemoryLimit (LML) et TotalMemoryLimit (TML). L&rsquo;objet de ce billet n&rsquo;est donc pas de présenter la fonction de ces deux éléments : pour cela vous trouverez des informations <a href="http://sqlcat.com/whitepapers/archive/2007/11/19/analysis-services-2005-performance-guide.aspx">ici</a> (page 92).</p>
<p><ins>Edit du 08/10/2010 : Je viens de tomber sur un post du très bon blog de François Jehl qui explique les subtilités de ce paramétrage : <a href="http://fjehl.blogspot.com/2009/12/ssas-les-reglages-de-memoire.html">voir ici</a></ins></p>
<p>AS 2008 introduit une nouvelle propriété pour son modèle de gestion de la mémoire : le HardMemoryLimit (HML). Peu de documents parlent de cette propriété. J&rsquo;ai trouvé une référence <a href="http://sqlcat.com/technicalnotes/archive/2010/02/08/microsoft-sql-server-2008-analysis-services-consolidation-best-practices.aspx">ici</a> (merci Thomas).<br />
Le HML se paramètre de la même manière que le LML et le TML. Il permet de rentrer dans un mode encore plus agressif de nettoyage de la mêmoire : si besoin l&rsquo;ensemble de la mémoire shrinkable pourra être vidée, de même que les commandes en cours (processing et requête) pourront être annulées.<br />
Attention cependant, de manière analogue aux LML et TML, le HML ne constitue pas une limite physique de consommation de la mémoire, ce qui nous fait d&rsquo;ailleurs penser que son nom est mal choisi.</p>
<p>Source :</p>
<p><a href="http://msdn.microsoft.com/en-us/library/ee301976.aspx">BOL</a> (d&rsquo;ailleurs il y a une erreur sur cette page car le HardMemoryLimit n&rsquo;existe pas en 2005)<br />
<a href="http://connect.microsoft.com/SQLServer/feedback/details/533716/ssas-2008-hardmemorylimit-units">Connect</a></p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Une opération de processing semble bloquée sur mon instance AS 2005</title>
		<link>https://blog.developpez.com/patriceharel/p9363/ssas/une_operation_de_processing_semble_bloqu_1</link>
		<comments>https://blog.developpez.com/patriceharel/p9363/ssas/une_operation_de_processing_semble_bloqu_1#comments</comments>
		<pubDate>Fri, 08 Oct 2010 15:23:29 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[J&#8217;ai récemment constaté un problème de blocage des processing de cube AS. Dans un premier temps, on a tendance à penser que le processing dure juste plus longtemps qu&#8217;à l&#8217;accoutumé. Mais quand ça fait 12h que ça tourne pour une opération qui prend en temps normal 1h, y’a quand même de quoi se poser des questions. En observant les compteurs de performance, on constate que, dans mon cas, l’instance est toujours en train de calculer [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>J&rsquo;ai récemment constaté un problème de blocage des processing de cube AS. Dans un premier temps, on a tendance à penser que le processing dure juste plus longtemps qu&rsquo;à l&rsquo;accoutumé. Mais quand ça fait 12h que ça tourne pour une opération qui prend en temps normal 1h, y’a quand même de quoi se poser des questions.</p>
<p><span id="more-7"></span></p>
<p>En observant les compteurs de performance, on constate que, dans mon cas, l’instance est toujours en train de calculer les indexes de mes partitions, et ça fait longtemps que ça dure :</p>
<p><img src="http://blog.developpez.com/media/New Picture.JPG" width="813" height="247" alt="" /><br />
<em>Courbe verte : nombre de lignes lues<br />
Courbe bleue : nombre de lignes &laquo;&nbsp;processées&nbsp;&raquo;<br />
Courbe verte : nombre de lignes écrites<br />
Courbe jaune : Nombre de partitions pour lesquelles les indexes et les agrégations sont en cours de calcul (axe des ordonnées de droite)</em></p>
<p>Et dans le même temps, au niveau de la consommation processeur, on constate que plus grand chose ne se passe, ce qui n&rsquo;est absolument pas normal étant donné que généralement, les étapes d&rsquo;indexation/agrégation sont les plus consommatrices de ressources CPU au cours du processing :</p>
<p><img src="http://blog.developpez.com/media/ssas2_01.JPG" width="713" height="144" alt="" /><br />
<em>Courbe verte : conso CPU en %</em></p>
<p>Ce cas de figure se présente surtout sur les grosses configurations serveur en 64 bits. Un article de Wayne Robertson <a href="http://blogs.msdn.com/b/psssql/archive/2007/01/16/processing-appears-to-stall-or-become-sluggish-on-multi-processor-machines-running-analysis-services-2005.aspx">ici</a> explique parfaitement le pourquoi du comment.</p>
<p>C&rsquo;est en fait un problème d&rsquo;attribution de threads à AS lorsque leur nombre dépasse la valeur de la propriété <strong>ThreadPool Process Max</strong>. Il existe une manière empirique pour calculer la valeur à imposer à cette propriété, et elle est également expliquée dans l&rsquo;article ci-dessus. Je vais quand même la rappeller ici :</p>
<p>Faire la somme des valeurs des compteurs de performance suivants (valeurs relevées pendant le hang du processing) :</p>
<ul>
<li>Processing Pool Idle Threads</li>
<li>Processing Pool Busy Threads</li>
<li>Processing Pool Job Queue Length</li>
</ul>
<p><strong>Remarque</strong> : attention toute fois à la modification de ce paramètre. D&rsquo;autres propriétés d&rsquo;AS sont à prendre en compte afin de maintenir l&rsquo;équilibre du système. Des infos sont disponibles dans le célébrissime livre blanc Performance guide que vous trouverez <a href="http://sqlcat.com/whitepapers/archive/2007/11/19/analysis-services-2005-performance-guide.aspx">ici</a> (cf page 65 : Executing Processing jobs).</p>
<p>Et pour aller plus loin, un chapitre tout entier est consacré à la gestion des threads dans le livre SQL Server 2008 Analysis Services Unleashed (chapitre 28, p 521).</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Modifier le rôle administrateur en XMLA</title>
		<link>https://blog.developpez.com/patriceharel/p9305/ssas/modifier_les_server_role_en_xmla</link>
		<comments>https://blog.developpez.com/patriceharel/p9305/ssas/modifier_les_server_role_en_xmla#comments</comments>
		<pubDate>Tue, 21 Sep 2010 17:09:27 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Dans la série &#171;&#160;c&#8217;est toujours bon de savoir comment faire autrement&#160;&#187;, voici une brève présentation de la manière de modifier les rôles serveurs sur SSAS autrement que par Management Studio. Pour rappel, le rôle serveur est celui qui permet d&#8217;être administrateur de l&#8217;instance AS (attention, pas du service AS, mais juste de la partie management des données, les droits sur le service sont au niveau de l&#8217;OS). Sur SSMS, nous procédons de la sorte : [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Dans la série &laquo;&nbsp;c&rsquo;est toujours bon de savoir comment faire autrement&nbsp;&raquo;, voici une brève présentation de la manière de modifier les rôles serveurs sur SSAS autrement que par Management Studio.<br />
Pour rappel, le rôle serveur est celui qui permet d&rsquo;être administrateur de l&rsquo;instance AS (attention, pas du service AS, mais juste de la partie management des données, les droits sur le service sont au niveau de l&rsquo;OS).<br />
Sur SSMS, nous procédons de la sorte : clic droit sur l&rsquo;instance, <strong>Properties</strong> puis <strong>Security</strong>.</p>
<p>Avec ASCMD, un XMLA avec cette tête permet de se passer de Management Studio (un vraie plaie de temps en temps) :</p>
<div class="codecolorer-container text default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:435px;"><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">&lt;Alter AllowCreate=&quot;true&quot; ObjectExpansion=&quot;ObjectProperties&quot; xmlns=&quot;http://schemas.microsoft.com/analysisservices/2003/engine&quot;&gt; <br />
&nbsp; &lt;Object&gt; <br />
&nbsp; &nbsp; &lt;RoleID&gt;Administrators&lt;/RoleID&gt; <br />
&nbsp; &lt;/Object&gt; <br />
&nbsp; &lt;ObjectDefinition&gt; <br />
&nbsp; &nbsp; &lt;Role xmlns:xsd=&quot;http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi=&quot;http://www.w3.org/2001/XMLSchema-instance&quot;&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;ID&gt;Administrators&lt;/ID&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;Name&gt;Administrators&lt;/Name&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;Members&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &lt;Name&gt;Domaine\Nom&lt;/Name&gt; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &lt;/Member&gt; <br />
&nbsp; &nbsp; &nbsp; &lt;/Members&gt; <br />
&nbsp; &nbsp; &lt;/Role&gt; <br />
&nbsp; &lt;/ObjectDefinition&gt; <br />
&lt;/Alter&gt;</div></div>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Changer l&#8217;emplacement du fichier de configuration d&#8217;AS (msmdsrv.ini)</title>
		<link>https://blog.developpez.com/patriceharel/p9289/ssas/changer_l_emplacement_du_fichier_de_conf</link>
		<comments>https://blog.developpez.com/patriceharel/p9289/ssas/changer_l_emplacement_du_fichier_de_conf#comments</comments>
		<pubDate>Wed, 15 Sep 2010 08:36:03 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Voici une astuce permettant la modification de l&#8217;emplacement du fichier de configuration de votre instance SSAS. Pour rappel ce fichier de configuration contient les propriétés de votre instance SSAS (les MemoryLimit, le chemin de vos fichiers de données, les paramètres du FlightRecorder, etc.). La modification de son emplacement se fait via l&#8217;éditeur de registre. Il faut modifier la valeur d&#8217;ImagePath située dans HKLM-SYSTEM-CurrentControlSet-Services puis MSSQLServerOLAPService (pour une instance par défaut) ou MSOLAP$InstanceName (pour une instance [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Voici une astuce permettant la modification de l&rsquo;emplacement du fichier de configuration de votre instance SSAS.<br />
Pour rappel ce fichier de configuration contient les propriétés de votre instance SSAS (les MemoryLimit, le chemin de vos fichiers de données, les paramètres du FlightRecorder, etc.).</p>
<p>La modification de son emplacement se fait via l&rsquo;éditeur de registre. Il faut modifier la valeur d&rsquo;ImagePath située dans <strong>HKLM-SYSTEM-CurrentControlSet-Services</strong> puis <strong>MSSQLServerOLAPService</strong> (pour une instance par défaut) ou <strong>MSOLAP$<em>InstanceName</em></strong> (pour une instance nommée). Le chemin du msmdsrv.ini se trouve après l&rsquo;option -s</p>
<p>Petit conseil, la manipulation doit se faire avec l&rsquo;instance AS éteinte.</p>
<p><strong>Remarque</strong> : si jamais l&rsquo;emplacement spécifié dans la clé de registre n&rsquo;est pas le bon (une faute de frappe est si vite arrivée), SSAS va quand même démarré et va créer un fichier de configuration tout neuf à l&rsquo;emplacement spécifié, mais avec <strong>tous les paramètres par défaut</strong>. Prudence donc si vous avez customisé votre fichier, car dans ce cas, les valeurs de vos paramètres seront celles que nous trouvons à l&rsquo;installation de l&rsquo;instance.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Freeze d&#8217;AS : Concurrence entre Processing et MDX</title>
		<link>https://blog.developpez.com/patriceharel/p9151/ssas/freeze_d_as_concurrence_entre_processing</link>
		<comments>https://blog.developpez.com/patriceharel/p9151/ssas/freeze_d_as_concurrence_entre_processing#comments</comments>
		<pubDate>Mon, 26 Jul 2010 14:23:53 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SSAS]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Voici un problème récurrent de freeze constaté sur une instance SSAS 2005 auquel j’ai été confronté un certain nombre de fois (attention, ce problème n’a pas été constaté sur 2008). Je commence par préciser que les freeze AS peuvent être dû à une multitude de sources, je n’exposerai ici que l’une d’entre elles, clairement identifiée. Vous avez donc une instance SSAS qui tourne bien jusqu’à ce que vous constatiez que : Vous avez une opération [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Voici un problème récurrent de <strong>freeze </strong>constaté sur une instance SSAS 2005 auquel j’ai été confronté un certain nombre de fois (attention, ce problème <strong>n’a pas été constaté sur 2008</strong>).</p>
<p><span id="more-3"></span></p>
<p>Je commence par préciser que les freeze AS peuvent être dû à une multitude de sources, je n’exposerai ici que l’une d’entre elles, clairement identifiée.</p>
<p>Vous avez donc une instance SSAS qui tourne bien jusqu’à ce que vous constatiez que :</p>
<ul>
<li>Vous avez une opération de processing en cours sur l’une de vos bases qui ne se termine pas</li>
<li>Une partie de vos utilisateurs se plaignent car ils ne parviennent plus à obtenir des données de leur cube</li>
<li>Toute nouvelle connexion à l’instance est impossible, cependant, les connexions établies avant le freeze restent actives, mais comme vu ci-dessus, une partie des requêtes ne passe plus</li>
</ul>
<p>Voilà pour les symptômes de base. Maintenant, regardons ce qui se passe sur nos outils de monitoring (ici Performance Monitor et SQL Profiler).</p>
<p><img src="http://blog.developpez.com/media/PROFILERPROCESS.PNG" width="824" height="238" alt="" /></p>
<p>On constate sur le Profiler qu’une transaction est en train d’être annulée par AS : pourquoi cela ? Parce qu’un processing est sur le point de se finir et tente d’annuler les requêtes en cours qui utilisent les fichiers que ce processing tente de modifier (voir le ForceCommitTimeout).</p>
<p>Sur le Perfmon, nous pouvons observer qu’il y’a un problème d’utilisation du CPU (<strong>plateau </strong>à partir de 13h40 généré par la non libération des ressources par le processing en cours et par l’annulation des requêtes). D’ailleurs, si on contrôle la valeur du nombre de thread accordé à AS, nous remarquons qu’il évolue peu ou pas du tout.</p>
<p><img src="http://blog.developpez.com/media/CPUPROCESS1.PNG" width="700" height="142" alt="" /><br />
<em>Note : Courbe Verte : Utilisation CPU du serveur/Courbe violette : Utilisation CPU par AS<br />
       Ordonnées: % d&rsquo;utilisation<br />
       Abscisses: Heure</em></p>
<p>Le blocage quasi complet de l’instance est donc dû à deux facteurs :</p>
<ul>
<li>Une opération de processing <strong>en cours</strong></li>
<li>Une requête dont le temps d’annulation est extrêmement long : dans notre cas, c’est lors du calcul des cellules <strong>NON EMPTY</strong> que le rollback prend beaucoup de temps. Ce comportement a été modifié avec 2008 et l’apparition du <strong>Subspace Computation</strong> (ou Block Computation). Voilà pourquoi pour le moment ce problème  n’a été observé que sous 2005</li>
</ul>
<p>Pourquoi les nouvelles connexions à l’instance ne peuvent aboutir ? Simplement parce qu’AS n’établit pas de nouvelles connexions/requêtes quand une opération de processing est dans sa <strong>phase de commit</strong>. Il les place dans sa file d’attente.</p>
<p>Si vous vous trouvez dans cette situation, il existe deux solutions :</p>
<ul>
<li>Attendre l’annulation effective de la requête</li>
<li>Ou redémarrer l’instance AS</li>
</ul>
<p>Le constat est que ces deux propositions ne sont pas du tout satisfaisantes. Attendre plusieurs minutes/heures, ou redémarrer l&rsquo;instance. Heureusement, il existe des moyens de contournement de ce problème :</p>
<ul>
<li>L’utilisation du NON EMPTY BEHAVIOUR pour l’optimisation des ordres NON EMPTY (attention à son utilisation sur 2008)</li>
<li>La réécriture des MDX (pas toujours possible, cela dépend de l’outil client)</li>
<li>Le passage à 2008 (et oui)</li>
</ul>
<p><strong>Voici quelques documents</strong> :</p>
<p>Subspace/Block Computing :<br />
<a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=3be0488d-e7aa-4078-a050-ae39912d2e43&amp;displaylang=en">SSAS 2008 Performance Guide</a>, paragraphe 2.3.2.1</p>
<p>NON EMPTY BEHAVIOUR :<br />
<a href="http://sqlblog.com/blogs/marco_russo/archive/2006/12/25/clarification-on-non-empty-behavior-property-in-ssas-2005-sp2.aspx">Blog de Marco Russo</a><br />
<em>SSAS Unleashed</em>, chapitre 12, p196-197, chapitre 29 p 541</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tracer SQL Browser</title>
		<link>https://blog.developpez.com/patriceharel/p9138/sql-server/tracer_sql_browser</link>
		<comments>https://blog.developpez.com/patriceharel/p9138/sql-server/tracer_sql_browser#comments</comments>
		<pubDate>Wed, 21 Jul 2010 14:18:02 +0000</pubDate>
		<dc:creator><![CDATA[patriceharel]]></dc:creator>
				<category><![CDATA[SQL Server]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Dernièrement, j&#8217;ai eu un problème de perte de connexion complètement aléatoire sur AS (je ferai un compte rendu sur ce problème dans un autre post). J&#8217;ai cherché à savoir à quel niveau se trouvait cette perte de connexion : donc forcément on pense au SQL Browser à un moment ou à un autre. Question : comment tracer les évènements de ce service? Il faut le lancer avec l&#8217;option -c (sqlbrowser.exe -c). De cette manière, vous [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Dernièrement, j&rsquo;ai eu un problème de perte de connexion complètement aléatoire sur AS (je ferai un compte rendu sur ce problème dans un autre post). J&rsquo;ai cherché à savoir à quel niveau se trouvait cette perte de connexion : donc forcément on pense au SQL Browser à un moment ou à un autre.<br />
Question : comment tracer les évènements de ce service? Il faut le lancer avec l&rsquo;option -c (<strong>sqlbrowser.exe -c</strong>). De cette manière, vous voyez toutes les connexions résolues par le Browser et les erreurs sont &laquo;&nbsp;loguées&nbsp;&raquo; dans l&rsquo;Event Viewer de votre serveur.</p>
]]></content:encoded>
			<wfw:commentRss></wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
