<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://www.dotnetgeeks.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>Dave Cooper : MSCMS</title><link>http://www.dotnetgeeks.com/blogs/cooperfdiv/archive/tags/MSCMS/default.aspx</link><description>Tags: MSCMS</description><dc:language>en</dc:language><generator>CommunityServer 2008.5 (Build: 30929.2835)</generator><item><title>Performance &amp; Tuning Guidelines for MSCMS 2002.</title><link>http://www.dotnetgeeks.com/blogs/cooperfdiv/archive/2006/08/28/Performance-_2600_-Tuning-Options-in-MSCMS-2002_2E00_.aspx</link><pubDate>Mon, 28 Aug 2006 20:49:00 GMT</pubDate><guid isPermaLink="false">9a60a460-d114-4552-8b11-a2e006da95ba:484</guid><dc:creator>cooperfdiv</dc:creator><slash:comments>0</slash:comments><description>&lt;p&gt;I have been asked many times &amp;ldquo;our CMS site is running a little (or a lot) slow, is there anything we can do to speed it up?&amp;rdquo; The answer to this common question is yes. There are several tuning guidelines you can follow to make sure you are achieving maximum performance from your MSCMS system.&lt;/p&gt;&lt;p&gt;If you are restricted by the number of processors, add more processors. This has an impact on not only your MSCMS performance, but the .NET Framework as well.&lt;/p&gt;&lt;p&gt;Memory can be another restriction. If you do not have enough memory in your machine then you may see a sluggish response time and may want to increase the amount of system memory you have. This also has an impact on the performance of the .NET Framework as well. The amount of memory you have directly relates to the amount of objects MSCMS can cache.&lt;/p&gt;&lt;p&gt;Make sure you are on the latest service pack(s) and .NET Framework. Since MSCMS is a .NET application this will allow you to take advantage of other tuned base framework components and leverage their improvements and performance gains.&lt;/p&gt;&lt;p&gt;Please see Sefan Gossner&amp;rsquo;s&amp;nbsp; Blog on MSCMS and the .NET Framework 2.0 at &lt;a href="http://blogs.technet.com/stefan_gossner/archive/2005/11/10/414147.aspx"&gt;http://blogs.technet.com/stefan_gossner/archive/2005/11/10/414147.aspx&lt;/a&gt;&lt;/p&gt;&lt;p&gt;There are sever caching options you can look at to improve performance. I will not go into to all of these now but they are.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div&gt;ASP.NET Output Cache&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Fragment Cache&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div&gt;Disk Cache&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;And Node Caching is a good way to get some performance out of your MSCMS system. From your MSCMS database you will want to execute this SQL expression. This will calculate the number you need to set the node caching option in the SCA to.&amp;nbsp;&lt;/p&gt;&lt;table cellpadding="0" cellspacing="0" class="MsoNormalTable" style="background:#4f81bd;border-collapse:collapse;"&gt;&lt;tr&gt;&lt;td style="padding-right:5.75pt;padding-left:5.75pt;padding-bottom:0.05in;width:6.65in;padding-top:0.05in;background-color:transparent;border:black 1pt solid;"&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;SELECT &lt;/span&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;count(*) &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;FROM &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;node WITH (NOLOCK)&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;WHERE &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;&amp;nbsp;&amp;nbsp; &amp;nbsp;&amp;nbsp;(datediff(hour, archivedwhen, getdate()) &amp;lt; 1 OR archivedwhen IS null) &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;AND &amp;nbsp;(deletedwhen is NULL) AND datediff(hour, expirydate, getdate()) &amp;lt; 1 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;AND &amp;nbsp;(datediff(hour, effectivedate, getdate()) &amp;gt; 1 OR effectivedate IS null) AND &amp;nbsp;(datediff(hour, approvedwhen, getdate()) &amp;gt; 1 OR (type &amp;gt;= 65535 &lt;/span&gt;&lt;/p&gt;&lt;p class="MsoNormal" style="margin:0in 0in 0pt;"&gt;&lt;span style="font-size:10pt;color:white;font-family:'Courier New';"&gt;AND &amp;nbsp;approvedwhen is null))&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;p&gt;&lt;strong&gt;&lt;span style="color:red;"&gt;Note:&lt;/span&gt;&lt;/strong&gt; Microsoft strongly recommends that you set your node cache to at least the number that is returned by this script. If constant authoring and updates occur on your site, increase the node cache size accordingly.&lt;/p&gt;&lt;p&gt;There are limitations, for example Microsoft states that if the number returned is more than 35,000 you could possibly have memory issues if you do not have the sufficient amount of memory, and some pieces of you application may not be cached.&lt;/p&gt;&lt;p&gt;See Article 318976 at &lt;a href="http://support.microsoft.com/kb/318976/"&gt;http://support.microsoft.com/kb/318976/&lt;/a&gt; for a more in depth look at node caching within MSCMS.&lt;/p&gt;&lt;p&gt;Also see the Performance Planning and Deployment with Content Management Server 2002 at &lt;a href="http://www.microsoft.com/downloads/details.aspx?FamilyID=e1f50824-c281-4fd6-966c-ac4c68106010&amp;amp;DisplayLang=en"&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=e1f50824-c281-4fd6-966c-ac4c68106010&amp;amp;DisplayLang=en&lt;/a&gt; for an view detailed and in depth look at how to plan and tune a MSCMS 2002 system.&lt;/p&gt;&lt;p&gt;End Transmission&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://www.dotnetgeeks.com/aggbug.aspx?PostID=484" width="1" height="1"&gt;</description><category domain="http://www.dotnetgeeks.com/blogs/cooperfdiv/archive/tags/MSCMS/default.aspx">MSCMS</category><category domain="http://www.dotnetgeeks.com/blogs/cooperfdiv/archive/tags/Performance/default.aspx">Performance</category><category domain="http://www.dotnetgeeks.com/blogs/cooperfdiv/archive/tags/.NET/default.aspx">.NET</category></item></channel></rss>