<?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>Torsten&#039;s Blog &#187; Collections</title>
	<atom:link href="http://www.mssccmfaq.de/tag/collections/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.mssccmfaq.de</link>
	<description></description>
	<lastBuildDate>Fri, 03 Sep 2010 07:14:02 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Collection aller Sitesysteme</title>
		<link>http://www.mssccmfaq.de/2009/12/21/collection-aller-sitesysteme/</link>
		<comments>http://www.mssccmfaq.de/2009/12/21/collection-aller-sitesysteme/#comments</comments>
		<pubDate>Mon, 21 Dec 2009 17:30:24 +0000</pubDate>
		<dc:creator>Torsten</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Collections]]></category>
		<category><![CDATA[ConfigMgr]]></category>
		<category><![CDATA[Query]]></category>
		<category><![CDATA[SCCM]]></category>

		<guid isPermaLink="false">http://www.mssccmfaq.de/?p=10064</guid>
		<description><![CDATA[Wie bekommt meine eine Collection, die alle Sitesysteme enthält ohne dass der ConfigMgr-Client darauf installiert ist (und man somit nicht die Möglichkeit hat, Hardware-Inventory-Kriterien heranzuziehen)? Die Lösung ist einfach: select * from  SMS_R_System where SMS_R_System.Name in (select distinct ServerName from SMS_SystemResourceList)]]></description>
			<content:encoded><![CDATA[<p>Wie bekommt meine eine Collection, die alle Sitesysteme enthält ohne dass der ConfigMgr-Client darauf installiert ist (und man somit nicht die Möglichkeit hat, Hardware-Inventory-Kriterien heranzuziehen)?<br />
Die Lösung ist einfach:<br />
select * from  SMS_R_System where SMS_R_System.Name in (select distinct ServerName from SMS_SystemResourceList)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssccmfaq.de/2009/12/21/collection-aller-sitesysteme/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Subselect / not in &#8211; Abfragen</title>
		<link>http://www.mssccmfaq.de/2009/12/14/subselect-not-in-abfragen/</link>
		<comments>http://www.mssccmfaq.de/2009/12/14/subselect-not-in-abfragen/#comments</comments>
		<pubDate>Mon, 14 Dec 2009 11:30:52 +0000</pubDate>
		<dc:creator>Torsten</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Collections]]></category>
		<category><![CDATA[ConfigMgr]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SQL]]></category>
		<category><![CDATA[WQL]]></category>

		<guid isPermaLink="false">http://www.mssccmfaq.de/?p=10048</guid>
		<description><![CDATA[Eine Abfrage zu erstellen, welches System eine bestimmte Software installiert hat, ist einfach. Wenn man aber eine Collection haben will, die nur die Rechner enthält, welche eine  Software nicht hat, so wird&#8217;s etwas komplizierter. Folgendes Beispiel dient zur Verdeutlichung. Am besten startet man mit einer Liste der Rechner, die die Software installiert haben, so z.B. &#8220;zeige mir alle [...]]]></description>
			<content:encoded><![CDATA[<p>Eine Abfrage zu erstellen, welches System eine bestimmte Software installiert hat, ist einfach.<br />
Wenn man aber eine Collection haben will, die nur die Rechner enthält, welche eine  Software <em>nicht</em> hat, so wird&#8217;s etwas komplizierter. Folgendes Beispiel dient zur Verdeutlichung.</p>
<p>Am besten startet man mit einer Liste der Rechner, die die Software installiert haben, so z.B. &#8220;<em>zeige mir alle Rechner, die Winzip 9.0 installiert haben</em>&#8220;:</p>
<p><span style="color: #0000ff;">select distinct SMS_R_System.Name from SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like &#8220;%Winzip 9.0%</span></p>
<p>Um sich jetzt die Rechner anzeigen zu lassen, die Winzip 9.0 nicht installiert haben muss man das &#8220;<strong>subselect &#8230; not in</strong>&#8221; &#8211; Statement verwenden.</p>
<p>&#8220;<em>Zeige mir alle Rechner, aber nicht die, die Winzip 9.0 installiert haben</em>&#8220;, was nichts anderes bedeutet als &#8220;<em>alle Rechner ohne Winzip 9.0</em>&#8220;:</p>
<p><span style="color: #ff0000;">select distinct Name from SMS_R_System where Name not in</span> (<span style="color: #0000ff;">select distinct SMS_R_System.Name from  SMS_R_System inner join SMS_G_System_ADD_REMOVE_PROGRAMS on SMS_G_System_ADD_REMOVE_PROGRAMS.ResourceID = SMS_R_System.ResourceId where SMS_G_System_ADD_REMOVE_PROGRAMS.DisplayName like &#8220;%Winzip 9.0%&#8221;</span>)</p>
<p>In der GUI erkennt man auch sehr gut, dass der &#8220;Subselect&#8221; &#8211; Teil genau die erste Query (blau markiert) meines Beispieles ist, der nur der &#8220;not in&#8221; &#8211; Teil vorangestellt ist:</p>
<p><img class="alignnone size-full wp-image-10051" title="subselect_notin" src="http://www.mssccmfaq.de/wp-content/uploads/2009/12/subselect_notin.gif" alt="subselect_notin" width="281" height="298" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssccmfaq.de/2009/12/14/subselect-not-in-abfragen/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Mathematik mit ConfigMgr</title>
		<link>http://www.mssccmfaq.de/2009/12/02/mathematik-mit-configmgr/</link>
		<comments>http://www.mssccmfaq.de/2009/12/02/mathematik-mit-configmgr/#comments</comments>
		<pubDate>Wed, 02 Dec 2009 20:00:32 +0000</pubDate>
		<dc:creator>Torsten</dc:creator>
				<category><![CDATA[Allgemein]]></category>
		<category><![CDATA[Collections]]></category>
		<category><![CDATA[ConfigMgr]]></category>
		<category><![CDATA[SCCM]]></category>
		<category><![CDATA[SQL]]></category>

		<guid isPermaLink="false">http://www.mssccmfaq.de/?p=10029</guid>
		<description><![CDATA[Manchmal stellt sich die Frage, ob aktuelle Einstellungen einer (Central) Site aus Performance-Sicht auch wirklich Sinn machen. Hier ein aktuelles Beispiel einer Central Site mit ca. 1000 dynamischen Collections und deren Update-Intervallen. Solche Betrachtungen können teilweise nicht im Vorfeld gemacht werden, da man aktuelle Werte heranziehen muss, die erst dann ermittelt werden können, wenn die [...]]]></description>
			<content:encoded><![CDATA[<p>Manchmal stellt sich die Frage, ob aktuelle Einstellungen einer (Central) Site aus Performance-Sicht auch wirklich Sinn machen. Hier ein aktuelles Beispiel einer Central Site mit ca. 1000 dynamischen Collections und deren Update-Intervallen.<br />
Solche Betrachtungen können teilweise nicht im Vorfeld gemacht werden, da man aktuelle Werte heranziehen muss, die erst dann ermittelt werden können, wenn die betroffene Site auch wirklich in Betrieb und unter Last ist. Es macht also Sinn, die Konfiguration einer Site ab und zu kritischen Bewertungen zu unterziehen.</p>
<p>Wie lange braucht also der Collection Evaluator, bis er eine Collection aktualisiert hat? Glücklicherweise gibt es dazu den View v_Collection in der Datenbank:</p>
<p><img class="alignnone size-full wp-image-10030" title="v_Collection" src="http://www.mssccmfaq.de/wp-content/uploads/2009/12/v_Collection.gif" alt="v_Collection" width="287" height="273" /></p>
<p>Für jede Collection gibt es also einen Zeitstempel, an dem mit der Evaluierung begonnen wurde und einen weiteren, an dem sie abgeschlossen war. Die Mathematik überlasse ich dem SQL-Server, der mit folgender Query die Collection-Evaluierungsdauer für jede Collection berechnet:</p>
<div><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;"> </span></span></span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">SELECT<br />
Name </span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">AS</span></span><span style="font-size: x-small;"> [Collection Name]</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">,</span></span><span style="font-size: x-small;"><br />
</span><span style="color: #ff00ff; font-size: x-small;"><span style="color: #ff00ff; font-size: x-small;">DATEDIFF</span></span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">(</span></span><span style="font-size: x-small;">s</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">,</span></span><span style="font-size: x-small;"> EvaluationStartTime</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">,</span></span><span style="font-size: x-small;"> LastRefreshTime</span><span style="color: #808080; font-size: x-small;"><span style="color: #808080; font-size: x-small;">)</span></span><span style="font-size: x-small;"> </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">AS</span></span><span style="font-size: x-small;"> [Eval Time (s)]<br />
</span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">FROM<br />
v_Collection<br />
</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">ORDER<br />
</span></span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">BY</span></span><span style="font-size: x-small;"> [Eval Time (s)] </span><span style="color: #0000ff; font-size: x-small;"><span style="color: #0000ff; font-size: x-small;">DESC</span></span></div>
<p>Somit kann man also auch den Mittelwert für die Aktualisierung pro Collection ermitteln (Stichwort: <a title="AVG" href="http://msdn.microsoft.com/de-de/library/ms177677(SQL.90).aspx" target="_blank">avg</a>). In aktuellen Beispiel lag dieser bei ca. 2 Sekunden.</p>
<p>ConfigMgr braucht also 2000 Sekunden (2s * 1000 Collection), um alle Collections einmal zu aktualisieren. 2000s sind nach Adam Riese (oder auch dem Taschenrechner/calc.exe von Windows 7, der in der wissenschaftlichen Ansicht auch div. Umrechnungen vornehmen kann) also 33,3min:</p>
<p><img class="alignnone size-full wp-image-10033" title="Calc_Win7" src="http://www.mssccmfaq.de/wp-content/uploads/2009/12/Calc_Win7.gif" alt="Calc_Win7" width="292" height="195" /></p>
<p>Der Collection-Evaluator kann leider die Aktualisierungen nur sequentiell abarbeiten. Am vorliegenden Beispiel (alle Collections sind mit einem 30min Interval konfiguriert) sollte also dieser Wert definitiv erhöht werden (30min &lt; 33min), denn die Site hat ja auch noch andere Dinge zu tun, als nur Collections zu aktualisieren.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.mssccmfaq.de/2009/12/02/mathematik-mit-configmgr/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
