tag:blogger.com,1999:blog-73472977471359095042009-05-23T16:16:38.609-07:00workingscriptsPeopleSoft, PeopleCode, SQL, DB2, ASP, Microsoft, VBS, JavaScript, HTML and many other usefull checked an working scripts. I hope you enjoy all of them and always feel free to redistribute, just include my name or the name of original author.Iouri Chadourhttp://www.blogger.com/profile/14350262999776091312noreply@blogger.comBlogger4125tag:blogger.com,1999:blog-7347297747135909504.post-831355877765390032008-05-13T07:11:00.000-07:002008-05-31T10:57:57.776-07:00Windows Update high CPU usage fixI have recently experienced a problem with Windows Update (<span style="font-weight: bold;">wuauserv) </span>peaking out the CPU - it hit 50% and that almost freezes the PC. The process that shows using the CPU is (<span style="font-weight: bold;">svchost)</span><br /><br /><a href="http://www.online-tech-tips.com/wp-content/uploads/2007/10/svchost.png" rel="lightbox" title="Process List">Process Listing</a><br /><br />After searching the internet I have found one script that seemed to work well. Please follow these simple steps outlined below:<br /><br /><br /><br /><br /><br /><br /><br /><br />1) Copy code listed below and save as <span style="font-weight: bold;">windowsupdate.bat </span> on your desktop<br /><br /><br />2) Run it just by double-clicking the file<br /><br /><div class="code"><br />net stop wuauserv<br />net stop bits<br />net stop cryptsvc<br /><br />deltree /Y %systemroot%\SoftwareDistribution_Old<br />ren %systemroot%\SoftwareDistribution SoftwareDistribution_Old<br /><br />regedit /s "WSUSReset.reg"<br /><br />REGSVR32 /s WUAUENG.DLL<br />REGSVR32 /s WUAUENG1.DLL<br />REGSVR32 /s ATL.DLL<br />REGSVR32 /s WUCLTUI.DLL<br />REGSVR32 /s WUPS.DLL<br />REGSVR32 /s WUPS2.DLL<br />REGSVR32 /s WUWEB.DLL<br /><br />net start wuauserv<br />net start bits<br />net start cryptsvc<br /><br />wuauclt.exe /resetauthorization /detectnow<br /></div><br /><br />In case this does not help, please see more instructions from the blog below:<br /><br /><a href="http://www.somelifeblog.com/2007/05/windows-xp-svchostexe-100-cpu-high.html">Some Life Blog</a><br /><br />Let me know if you have questions - enjoy<br /><br /><br /><div class="tag_list">Technorati Tags: <span class="tags"><a href="http://technorati.com/tag/Windows" rel="tag">Windows</a></span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7347297747135909504-83135587776539003?l=workingscripts.blogspot.com'/></div>Iouri Chadourhttp://www.blogger.com/profile/14350262999776091312noreply@blogger.com0tag:blogger.com,1999:blog-7347297747135909504.post-50214848539150812252008-04-07T10:21:00.000-07:002008-04-07T10:23:00.653-07:00Adding Technorati<a href="http://technorati.com/claim/ypkttur9n3" rel="me">Technorati Profile</a><br />Well finally I have managed to add my blog to Technorati - my long time favorite for a different tech info. <br /><div class="tag_list">Technorati Tags: <span class="tags"><a href="http://technorati.com/tag/PeopleSoft" rel="tag">PeopleSoft</a></span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7347297747135909504-5021484853915081225?l=workingscripts.blogspot.com'/></div>Iouri Chadourhttp://www.blogger.com/profile/14350262999776091312noreply@blogger.com0tag:blogger.com,1999:blog-7347297747135909504.post-20245879969850610672008-04-02T09:04:00.000-07:002008-04-07T10:03:05.381-07:00SQR - PRINT-IMAGE & IMAGE-SIZEAfter searching the Web, I have found that there is not enough documentation about IMAGE-SIZE of the PRINT-IMAGE command, or I have not done the search right ;-). Either way here it goes in plain English:<br /><br />Excerpt from the Book:<br /><br /><div class="code"><br />PRINT-IMAGE<br />Syntax<br />PRINT-IMAGE[image_name]position<br />[TYPE={image_type_lit|_var|_col}]<br />[IMAGE-SIZE=(width_num_lit|_var|_col,height_num_lit<br />[SOURCE={file_name_txt_lit|_var|_col}]<br /></div><br /><br />IMAGE-SIZE - Specifies the width and height of the image. The width (width_num_lit) is specified in the font point-size that you have specified in the print command or ALTER-PRINTER. So putting:<br />alter-printer point-size=14 font=4<br /><br />would affect your image size. Height (height_num_lit) - is specified in the line height. So changing<br /><br /><div class="code"><br /><span style="color: rgb(51, 51, 255);">DECLARE-LAYOUT<br />[CHAR-WIDTH=char_width_num_lit[uom]]<br />[LINE-HEIGHT=line_height_num_lit[uom]]<br />END-DECLARE<br />Would have an effect on the image width and height.<br /></span></div><br /><div class="tag_list">Tags: <span class="tags"><a href="http://technorati.com/tag/PeopleSoft" rel="tag">PeopleSoft</a>, <a href="http://technorati.com/tag/SQR" rel="tag">SQR</a></span></div><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7347297747135909504-2024587996985061067?l=workingscripts.blogspot.com'/></div>Iouri Chadourhttp://www.blogger.com/profile/14350262999776091312noreply@blogger.com0tag:blogger.com,1999:blog-7347297747135909504.post-36252675293078746172008-03-31T13:05:00.000-07:002008-04-07T09:24:56.265-07:00nVision Performance Tuning<span style="font-size:100%;">As many PeopleSoft developers and managers I have suffered through my share of nVision Tuning efforts and until very recent we could not get our reports to run under 4 hours, until the recent change...<br /><br /><br />In any case here are a few points from my experience:<br /><br />We experienced an almost almost 5 fold increase in performance when we did a PS_LEDGER reorg with PSCLEDGER index option as follows:<br /><div class="code"><br />db2 "reorg table PSFSSYS.PS_LEDGER index PSFSSYS.PSCLEDGER allow read access indexscan" <br />db2 "RUNSTATS ON TABLE PSFSSYS.PS_LEDGER FOR INDEX PSFSSYS.PSCLEDGER" <br />db2 "reorgchk current statistics on table PSFSSYS.PS_LEDGER"<br /></div><br /><br />Also it is great to cleanup treeselectors, to make sure that static selectors did not get out of sync with trees, this can be done on a regular basis, see a sample script below. Please note that the number in the end of the treeselector name xx - corresponds to the chartfield length:<br /><br /><div class="code"><br />-- Delete TreeSelectors<br />Delete from PSFSSYS.PSTREESELECT05;<br />Delete from PSFSSYS.PSTREESELECT06;<br />Delete from PSFSSYS.PSTREESELECT10;<br /><br />-- Delete Tree Control table for the respective selectors above<br />delete from PSFSSYS.pstreeselctl<br />where length in (5,6,10);<br /></div><br /><br /></span><span style="font-weight: bold;font-size:100%;" >For details about PeopleSoft nVision architecture and structure please make sure to read the <a href="http://www.acs.utah.edu/acs/systems/ps8/Upgrade_Docs/Red_Paper_Psnvision.pdf">PeopleSoft nVision <span style="color: rgb(255, 0, 0);">Red Paper:</span><br /></a></span><span style="font-size:100%;"><a href="http://www.acs.utah.edu/acs/systems/ps8/Upgrade_Docs/Red_Paper_Psnvision.pdf"><br /></a></span><span style="font-weight: bold;font-size:100%;" >Here is a almost a complete document from PeopleSoft that talks about key options and structure of nVision. I will try and post the actual doc with images as soon as I get hosting for the website or get the link to PS Document.</span><span style="font-size:100%;"><br /></span><p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Topic:<span style=""> </span><span style=""> </span><b>nVision Performance<o:p></o:p></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Date:<span style=""> </span><b>06/09/2003<o:p></o:p></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Tools Release: <span style=""> </span><b>8.1x &amp; 8.4x</b></span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Purpose<o:p></o:p></span></h3> <p class="MsoBodyText3" style="margin-top: 6pt;"><span style="font-size:100%;">The purpose of this document is </span></p> <p class="MsoBodyText3" style="margin: 6pt 0in 0.0001pt 0.5in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="font-size:100%;">To help understand the way nVision works so that it could be easier to tune and maintain nVision reports, for a better and improved performance.</span><span style="font-size:100%;"> </span></p> <p class="MsoBodyText3" style="margin: 6pt 0in 0.0001pt 0.5in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="font-size:100%;">To perform as a one-stop document for nVision performance issues. </span></p> <p class="MsoBodyText3" style="margin: 6pt 0in 0.0001pt 0.25in;"><span style="font-size:100%;"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="margin-top: 6pt; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Scope<o:p></o:p></span></h3> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style="font-size:100%;"><u><span style="font-family:Arial;"><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#Understanding_PS_nVision">Understanding PS/nVision for better performance.</a><o:p></o:p></span></u></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#Set_nVision_Performance_options">Where to set nVision performance options.</a><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#nVision_Performance_Tuning_Sequence">PS/nVision Performance Tuning Sequence.</a><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#improve_performance">What could be done to improve performance</a> </span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#Creating_nVision_layouts">Creating good nVision layouts.</a><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#Scenarios">Scenarios.</a><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#Quick_Check_List">Quick checklist.</a><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Symbol;font-size:100%;" ><span style="">·<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" ><a href="http://www.blogger.com/post-edit.g?blogID=7347297747135909504&amp;postID=3625267529307874617#Information">Where to look for more information</a>.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoHeading8"><span style="font-size:100%;">Content</span><span style="font-size:100%;"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >The document was prepared from various documents collected overtime from Development, PeopleSoft Consultants, PeopleBooks, Customer’s and GSC Resolution database. <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >Fine-tuning nVision Layouts may require very extensive analysis from customers and may sometimes result in lot of work to correct the root of the problem. Additionally, this is not the type of tuning/monitoring that only happens once.<span style=""> </span>As time progresses, reporting needs change, the data may grow, new queries and criteria can be added without the knowledge of impact on performance.<span style=""> </span>There is a need to monitor large nVision reports consistently, weigh the cost of reporting time, tuning efforts, disk space and maintainability.</span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><span style=""> </span><o:p></o:p></span></p> <span style=";font-family:Arial;font-size:100%;" ><br /></span> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><a name="Understanding_PS_nVision"></a><b style=""><span style="font-family:Arial;">Understanding PS/nVision for better performance<o:p></o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="text-align: justify;"><span style="font-size:100%;">Overview of Tree Tables Used by PS/nVision:<o:p></o:p></span></h3> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Before attempting to tune an nVision layout, it is beneficial to understand the structure of various tree tables and how PS/nVision uses them. The main tables used are PSTreeDefn, PSTreeLeaf, PSTreeSelCtl, and PSTreeSelectnn.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="text-align: center;" align="center"><span style="font-size:100%;"><b><span style="font-family:Arial;"><!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" spt="75" preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter"> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0"> <v:f eqn="sum @0 1 0"> <v:f eqn="sum 0 0 @1"> <v:f eqn="prod @2 1 2"> <v:f eqn="prod @3 21600 pixelWidth"> <v:f eqn="prod @3 21600 pixelHeight"> <v:f eqn="sum @0 0 1"> <v:f eqn="prod @6 1 2"> <v:f eqn="prod @7 21600 pixelWidth"> <v:f eqn="sum @8 21600 0"> <v:f eqn="prod @7 21600 pixelHeight"> <v:f eqn="sum @10 21600 0"> </v:formulas> <v:path extrusionok="f" gradientshapeok="t" connecttype="rect"> <o:lock ext="edit" aspectratio="t"> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style="'width:339pt;"> <v:imagedata src="file:///C:\DOCUME~1\HIDFIX~1.GLI\LOCALS~1\Temp\msohtml1\01\clip_image001.png" title=""> </v:shape><![endif]--><!--[if !vml]--><img src="file:///C:/DOCUME%7E1/HIDFIX%7E1.GLI/LOCALS%7E1/Temp/msohtml1/01/clip_image002.jpg" shapes="_x0000_i1025" border="0" height="320" width="452" /><!--[endif]--><o:p></o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <h3 style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;">PSTREEDEFN: Tree Definition<o:p></o:p></span></h3> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Defines an effective-dated version of a tree—i.e., it contains one effective dated row for each tree.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p><br /></span></p> <h3 style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PSTREELEAF: Tree Leaf<o:p></o:p></span></h3> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Defines the data value ranges that compose the leaves of a tree. For each “leaf node” (nodes without children) one or more ranges define the detail values that correspond to that node.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PSTREESELECTnn: Tree Select Work-Size nn<o:p></o:p></span></h3> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoBodyText3" style="margin-left: 0.25in;"><span style="font-size:100%;">Defines Selectors used by PS/nVision to speed tree-based data selection. A selector table is defined for every possible detail field length (nn = 01-30); thus this description applies to tables named PSTREESELECT01, PSTREESELECT02, and so on, through PSTREESELECT30.</span><span style="font-size:100%;"><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PSTREESELNUM: Tree Select Control Number<o:p></o:p></span></h3> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoBodyText3" style="margin-left: 0.25in;"><span style="font-size:100%;">PS/nVision uses this table to assign a unique SELECTOR_NUM value to each tree selector as it is built. This table has only one row.</span><span style="font-size:100%;"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PS/nVision is a Microsoft Excel based reporting tool that generates dynamic SQL based on the structure of the report layout. Note that it is not possible to rewrite the queries generated by nVision; but it is possible to affect the number of joins, create slightly more efficient joins, and limit the selection criteria to specific portions of a tree.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PS/nVision includes three options to enhance the performance of generated SQL.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >These are:<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h4 style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;">Selector Type</span></h4> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >nVision uses selectors to speed retrieval of data through the trees. A selector associates<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >nodes to a single tree, and is represented by the rows in the PSTREESELECTnn table having a single SELECTOR_NUM value. Selectors can be <b>static or dynamic.<o:p></o:p></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <h6 style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;">Static Selectors</span><span style="font-size:100%;"><o:p></o:p></span></h6> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Static selectors are created once and retained until the underlying tree has changed.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Static selectors represent an entire tree. This means that a report must specify node criteria for the desired data.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Static selectors use ranges.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Node criteria and ranges produced by static selectors can often produce<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >complicated query predicates that pose more of a ‘ challenge’ to the optimizer.</span><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p></o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoHeading7" style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;">Dynamic Selectors</span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >PS/nVision can build dynamic selectors “on the fly” when preparing to execute a report.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Each dynamic tree selector <span style="">is built for a specific set of criteria (such as a set of rows or the current instance node), so that a selector (SELECTOR_NUM value) has exactly the nodes needed for a group of rows or columns to be retrieved with a SELECT.<o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Dynamic selectors eliminate the need for the often cumbersome selection criteria that PS/nVision generates for a static selector: </span><span style=";font-family:Arial;font-size:100%;color:black;" >TREE_NODE_NUM BETWEEN x AND y OR TREE_NODE_NUM BETWEEN...<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <h4 style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;">Selector Options<o:p></o:p></span></h4> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <h6 style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;">Single Values<o:p></o:p></span></h6> <p class="MsoNormal"><span style="font-size:100%;"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Use single values in conjunction with dynamic selectors.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Using individual values from the detail table specified in the tree structure, PS/nVision will build dynamic selectors that cover the detail ranges of the selected nodes.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Tree ranges are joined to the underlying detail table and the individual values are inserted to the RANGE_FROM_nn column of the appropriate PSTREESELECTnn table at layout run-time.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Single-value (dynamic) selectors enable a more efficient equi-join between PSTREESELECTnn.RANGE_FROM_nn and the criteria field in the ledger table.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Combining the dynamic and single-value selector techniques drastically improves the performance of PS/nVision in the majority of cases where trees are used.</span><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p></o:p></span></b></span></p> <h6 style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;">Ranges of Values<o:p></o:p></span></h6> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >A tree is considered to have ranges if it contains at least one detail range with different low and high values. When a tree has large ranges containing many detail values, single value selectors can cover <i>many </i>rows. In this case, the use of single value selectors may be inappropriate.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >In cases such as this, use the Ranges of Values option. >= <= Syntax<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >This produces syntax similar to the following when joining a field to a ranged selector:<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style="color: rgb(129, 0, 0);font-family:Arial;font-size:100%;" >WHERE … A.ACCOUNT >= L.RANGE_FROM_06 AND A.ACCOUNT <= L.RANGE_TO_06 …<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Between Syntax<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >This produces syntax similar to the following when joining a field to a ranged<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >selector:<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style="color: rgb(129, 0, 0);font-family:Arial;font-size:100%;" >WHERE … A.ACCOUNT BETWEEN L.RANGE_FROM_06 AND L.RANGE_TO_06 …<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Two syntax options are provided because the possibility exists that one could out-perform the other on certain database platforms. In most cases, there was no measurable difference in performance when these options were tested. In general,<span style=""> </span>start performance tuning and benchmarking with the between syntax.</span><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p></o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" >Non-Specific Node Criteria (Above 2 Billion)<o:p></o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >This option makes sense <i>only </i>when used with ranged static selectors. Note that it is disabled unless the Static Selector button has been pressed.</span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; text-indent: 0.25in;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <h4 style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;">Suppress Join<o:p></o:p></span></h4> <p class="MsoNormal"><span style="font-size:100%;"><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >The “suppress join” technique eliminates joins by retrieving the detail ranges associated with the selected node and coding them in the SELECT statement. The best use of this technique is often in conjunction with a scope field where each instance represents a moderate level of summarization.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >The suppress join technique <i>cannot </i>be used where PS/nVision needs to group the answer set by tree node number because these numbers are not available without joining the data to the tre<span style="">e.<o:p></o:p></span></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoBodyTextIndent2"><span style="font-size:100%;">If nVision cannot suppress a join because the result set must be grouped by tree node, the suppress join option will be ignored, and the selected join method (dynamic or static) will be used. This is why the proper selector method should always be checked whether or not you are attempting to use the Suppress Join option.<b><o:p></o:p></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" >Please refer to People Books for more detail description on Options. </span></b></span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <h2 style="text-align: justify;"><span style="font-size:100%;"><a name="Set_nVision_Performance_options"></a></span><span style="font-size:100%;">Where to set nVision Performance options </span></h2> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Access the Tree Performance tab by selecting nVision menu once you launch nVision, then Open Layout, Layout Options, then select the Tree Performance Tab.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Remember that these options must be set for <i>each individual </i>tree that is accessed in <i>each individual </i>layout. Note that the same options may not be appropriate for <i>all </i>trees, and that the same combination of options is not necessarily appropriate for <i>all </i>reports. Optimum performance is sometimes achieved using different options for different trees, depending on the nature of the tree and the manner in which the tree is used in the report.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Select the tree in the Tree Name list box. Set the proper options, and hit the apply button. Continue to the next tree. Hit the apply button after options have been set for this tree. Save the layout when you have set options for all trees. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If you do not specify the tree performance options for a tree used in a report layout, and no performance options are defined in Tree Manager from that trees, PS/nVision uses the same SQL Techniques used in the past on your database platform.</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Be prepared for some trial and error to find the best settings for your data and reporting requirements. Performance options specified in the tree will be overwritten by Layout Performance options.</span><span style=";font-family:Arial;font-size:100%;" > <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoBodyText2" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;">PeopleSoft nVision Options Panel </span></p> <p class="MsoBodyText2" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><o:p> </o:p></span></p> <p class="MsoBodyText2" style="margin-left: 0.25in; text-align: justify;"><span style="font-weight: normal;font-size:100%;" >This panel helps in tuning nVision reports. Go thru the following section to know it’s functionality <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoBodyText3" style="margin-left: 0.25in;"><span style="font-size:100%;">To find the panel, go to the nVision drop-down menu and select ‘ Options’ .<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >The ‘ Runtime Options’ will take effect when the layout executes.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >?Show Warning Messages – will display a message box(es) with any warning messages as the layout executes.<o:p></o:p></span></p> <p class="MsoBodyText3" style="margin-left: 0.75in; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style="font-size:100%;">?Show Report SQL – will write each query that is generated to a text box before execution. Note that report execution will not continue until you have responded by hitting the ‘ Ok’ push button. The ‘ Cancel’ push button will terminate execution of the report.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >?Suppress Amount Retrieval – instructs nVision <i>not </i>to pass the query off for<span style=""> </span>execution. You will see the generated queries, but they will not be executed.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >?Show Row and Column Criteria allows you to see the contents of Row1 and Column A. This area is reserved by nVision for data selection criteria when the layout is selected. Selecting this option will allow you see which Trees are used in the report.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoHeading9"><span style="font-size:100%;"><a name="nVision_Performance_Tuning_Sequence"></a>PS/nVision Performance Tuning Sequence</span><span style="font-size:100%;"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;" >1.<span style=""> </span>Use ‘ Show Row and Column Criteria’ to determine the Trees that are used in the layout. Or, set a PeopleSoft SQL trace, and search through the trace file looking for the names of all trees used in the layout. Search on the string ‘ PSTREEDEFN’ , and look for the name of each tree. The tree <span style="color:black;">name should appear as one of the ‘ values’ in the line(s) immediately following the select from the PSTREEDEFN table<b>.<o:p></o:p></b></span></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Note that any tree that is used by a layout through a scope, may <i>not </i>appear in Row 1 or Column A of the layout. Unless you know specifically which trees are used in layouts and are applied via specific scopes, the SQL trace is your best option for determining <i>all </i>trees referenced in an nVision layout.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:red;" ><o:p> </o:p></span></b></span></p> <p class="MsoBodyTextIndent3"><span style="font-size:100%;">2.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Set performance options in the Tree Performance Options dialog. </span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;color:black;" >3.<span style=""> </span>Set ‘ Show Report SQL and Suppress Amount Retrieval’ together to obtain queries for access path analysis. Review the queries that are produced based on the performance options that you have selected.</span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoBodyTextIndent3"><span style="font-size:100%;">4.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Cut and paste each query into your SQL Tool to generate an Explain for the access path. You can step through each query executed by the layout in this manner.</span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoBodyTextIndent2" style="margin-left: 0.5in; text-indent: -0.25in;"><span style="font-size:100%;">5. Use the Explain and your familiarity with your database optimizer to change the performance options (if necessary) and/or design indexes to enhance layout performance.</span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoHeading8"><span style="font-size:100%;"><a name="improve_performance"></a>What could be done to improve performance</span><span style="font-size:100%;"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >Now that the problem(s) have been identified some or all of the following may apply:<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <h2 style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style="font-size:100%;">1.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Decrease the size of the Summary Ledger</span><span style="font-size:100%;"><o:p></o:p></span></h2> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Reduce the number of ChartFields on the Summary Ledger<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Reduce the number of values for each ChartField by using summary ChartFields<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Compress the Summary Ledger with summary nodes (use summary trees)<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Summarize data at a level that will satisfy a number of reports<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Take advantage of Drill Down functionality if you need Detail Ledger or Journal data.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <h2 style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><span style="font-size:100%;">2.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Tree considerations</span><span style="font-size:100%;"><o:p></o:p></span></h2> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >The goals when using a Tree in the selection criteria (ultimately a Select stmt);<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >The 1st Tree select should yield data that will reduce the results as greatly as possible. Control joins, indexes and steps<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Using more than 2 or 3 trees causes problems for some database platforms.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Multiple Levels within a tree have no impact on nVision performance (it actually ignores them), volumes of data do impact nVision performance.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >If any of the trees contain only a few values used in this report, consider using Selected Detail Values to reduce the number of tables joined.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in; line-height: 12pt;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;color:black;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;color:black;" >Trees without ranges: on some platforms (e.g., Oracle), the SQL we generate for a tree with ranges runs slower than what we use for a tree with no ranges.<span style=""> </span>Some customers have made a point of using only single detail values in selected trees to get this performance benefit.<span style=""> </span>But there's a tradeoff:<span style=""> </span>We don't recommend doing this if it will greatly increase the number of rows in the tree selector, or impose a maintenance burden for users.<span style=""> </span>On the DB2 platform there have actually been performance improvements using ranges!<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;" >We recommend not to make changes to trees while nVision reports are running, this can result in the report not reflecting those changes</span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h2 style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style="font-size:100%;">3.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Tune indexes </span></h2> <p class="MsoBodyTextIndent2" style="margin-left: 0.5in; text-indent: -0.25in; line-height: 12pt;"><span style="font-size:100%;"> </span><span style="font-size:100%;">The goal of optimizing SQL and indexes is to reduce the number of compares needed to work through the access plan.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">This is best achieved by cutting the number of qualifying rows in the first JOIN step, usually by utilizing an index that combines literal values (such as Fiscal_Year and Ledger) with the most selective tree criteria field (often ACCOUNT).</span><span style="font-size:100%;"> </span><span style="font-size:100%;">A long run time and high number of "Gets" indicates too many qualifying rows early in the plan, which has a multiplier effect on the plan as a whole.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Note the importance of identifying the most selective ChartField.</span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >While we cannot control what and when Tree Selector tables are used in an nVision created SQL statement, you can influence the optimizer by seeding indexes. </span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >Ledger Indexing Rule of Thumb:<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><span style=""> </span>1st use all columns that have equalities (Fiscal_Year = 1995, etc)<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><span style=""> </span>2nd use the most selective field that will be used in the range predicate<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><span style=""> </span>In General use the more efficient ChartFields (higher column cardinality) as indexes<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Seeding: (seed after indexing to take advantage of the new indexes!) by adding rows to the most useful tree selector table (e.g, PSTREESELECT06) with SELECTOR_NUM values 1-100, then updating statistics, you can make the index on this table more attractive.</span><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <h2 style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style="font-size:100%;">4.</span><span style="font-size:100%;"> </span><span style="font-size:100%;">Rebuilding Tree Selectors for nVision</span><span style="font-size:100%;"><o:p></o:p></span></h2> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >PSTREESELNUM should <u>always</u> contain a single row that represents the last assigned selector number.<span style=""> </span>Zero is the correct value for a fresh database, provided there are no rows in PSTREESELCTL or PSTREESELECTxx (where xx is the width of the detail field over which the tree is built, i.e. a field size between 01 AND 30).<span style=""> </span>The selector number is used to identify a row in PSTREESELCTL or a set of rows in the PSTREESELECTxx tables.<span style=""> </span>The PSTREESELECTxx tables are join tables used for higher performance tree criteria processing.</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >PSTREESELCTL is the table that controls whether or not to refresh data in the selector tables based on the Tree effective date. <span style=""> </span>If you modify a tree and save it, the pstreeselect tables will get updated when you run an nVision report that uses that tree<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >The PSTREESELECTnn tables are used to speed tree-based data selection.<span style=""> </span></span><span style=";font-family:Arial;font-size:100%;" >The PSTREESELECTnn table is populated when either Query or nVision first uses that tree after the tree is changed. </span><span style=";font-family:Arial;font-size:100%;color:black;" >The PSTREESELECTnn tables were originally created when it was discovered that some database platforms do not use indexes on joins between differently sized fields.<span style=""> </span><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >PSTREELEAF always uses 30-character RANGE_FROM and RANGE_TO fields, regardless of the size of the dimension field being rolled up by the tree.<span style=""> </span>To get adequate performance we found it necessary to copy the leaf-rollup information into a<span style=""> </span>join table with a correctly sized dimension field, which we could then join to repeatedly while generating a report.<span style=""> </span>The selector tables should be thought of as tree cache information used by runtime tree criteria processing.<span style=""> </span>The use of selector tables is currently pretty much limited to nVision and Query, though DataObjects will use them for caching. </span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;" ><span style=""> </span>nVision/Query detects the change as a difference in version number between the tree itself (the version number in its row in PSTREEDEFN) and the Selector Control Table (PSTREESELCTL).<span style=""> </span>Of course, the first time a particular tree (SETID or SETCNTRLVALUE, TREE_NAME, EFFDT) is used in a report, we don't find it in PSTREESELCTL, and create selector rows and a control row for it.<span style=""> </span>The first user to use the tree after a change builds the new selector, and other users (even just seconds later) use the updated selector. The PSTREESELCTL has a SELECTOR_NUM column that gives us the SELECTOR_NUM value for the set of rows representing this tree's selector in PSTREESELECTnn.<span style=""> </span>Query/nVision, after finding a matching row with a current version number, or creating a new row and selector, uses this number in its SQL without checking if any matching rows exist in PSTREESELECTnn.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >The following are 2 methods in rebuild tree selectors. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style="font-size:100%;"><b><i><span style=";font-family:Arial;color:black;" >Method 1:</span></i></b></span><span style=";font-family:Arial;font-size:100%;color:black;" ><span style=""> </span>nVision will automatically rebuild selectors if the tree is re-saved after deleting a node and re-adding it,<span style=""> </span>or if the tree is copied to a new effective date.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style="font-size:100%;"><b><i><span style=";font-family:Arial;color:black;" >Method 2:</span></i></b></span><span style=";font-family:Arial;font-size:100%;color:black;" ><span style=""> </span>Delete the selector control entries associated with a for example Account<span style=""> </span>trees, forcing nVision to rebuild them.<span style=""> </span>The following SQL statement should do this, assuming that the ACCOUNT trees have a tree structure called ACCOUNT (if not, change the structure ID):<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >delete from pstreeselctl where tree_name in (select tree_name from pstreedefn<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >where tree_strct_id='ACCOUNT');<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="text-align: justify;"><span style="font-size:100%;"><a name="Creating_nVision_layouts"></a></span><span style=";font-family:Arial;font-size:100%;" >Creating good nVision layouts<o:p></o:p></span></h3> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <p class="MsoBodyText3"><span style="font-size:100%;">Creating good layout design begins with a solid understanding of the PS/nVision SQL Combination Rules and Criteria Inheritance Rules. Knowing when PS/nVision can or cannot combine row and column selections into one SQL statement will help you understand how to minimize the number of SQL calls it will generate, and how complex the SQL will get. </span></p> <h5 style="margin: 0in 0in 0.0001pt; text-align: justify; line-height: normal;"><span style="font-size:100%;"><o:p> </o:p></span></h5> <h5 style="margin: 0in 0in 0.0001pt; text-align: justify; line-height: normal;"><span style="font-size:100%;">PeopleSoft nVision tries to retrieve the data for each report instance with as few SELECTs as possible.<span style=""> </span>Once a report request is launched, PS/nVision examines all row criteria to determine which are combinable.<span style=""> </span>It does the same for column criteria.<span style=""> </span>It then builds a SELECT statement to retrieve each intersection of a combined group of rows with a combined group of columns.<o:p></o:p></span></h5> <h3 style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></h3> <h3 style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PS/nVision SQL Combination Rules</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></h3> <h5 style="margin: 0in 0in 0.0001pt; text-align: justify; line-height: normal;"><span style="font-size:100%;"><o:p> </o:p></span></h5> <h5 style="margin: 0in 0in 0.0001pt 0.25in; text-align: justify; line-height: normal;"><span style="font-size:100%;">The following built-in rules should be understood when designing PS/nVision layouts:<o:p></o:p></span></h5> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Different <u>Ledgers</u> cannot be combined.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Different <u>TimeSpans</u> cannot be combined.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >nPloded rows or columns cannot be combined with non-nPloded rows or columns.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >To be combined, two or more rows or columns must have criteria for the same set of ChartFields, and each ChartField's criteria must be of the same type (e.g., selected <u>tree nodes</u> cannot be combined with selected <u>detail values</u>).<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If criteria for a ChartField are specified by tree node, they can only be combined if they use the <u>same tree</u>.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If the combined rows or columns have identical criteria for a particular ChartField, the criteria are included in the WHERE clause, but no GROUP BY on that field is required.<span style=""> </span>But if different rows/columns in the group have different criteria, PS/nVision adds this field (or the corresponding tree node number) to the GROUP BY clause to retrieve a value for use in posting the answer set to the appropriate rows/columns of the report.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >A single SELECT can retrieve amounts for multiple combined rows and columns.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Different scope instances are retrieved with <u>separate</u> SELECTs.<o:p></o:p></span></p> <h5 style="margin: 0in 0in 0.0001pt 0.75in; text-align: justify; text-indent: -0.25in; line-height: normal;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style="font-size:100%;">Some additional rules apply for layouts defined using queries rather than ledgers:<o:p></o:p></span></h5> <ul style="margin-top: 0in;" type="square"><ul style="margin-top: 0in;" type="circle"><li class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Different queries are not combined.<o:p></o:p></span></li><li class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >References to different answer columns in the same query can be retrieved with a single SELECT, so long as they meet the above tests.<o:p></o:p></span></li></ul></ul> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Criteria Inheritance Rules</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></h3> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoBodyText" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;">Cells specified by intersection or by single-cell criteria inherit their selection criteria according to the following rules:<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Criteria defined at the worksheet level are used to specify defaults for the entire worksheet.<span style=""> </span>Criteria at the worksheet level are combined with criteria for columns, rows, and cells except where the row, column, or cell criteria give a different value for the same criterion.<span style=""> </span>In this case, the worksheet criteria are overridden.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >For the intersection of row and column criteria, the criteria are combined where possible.<span style=""> </span>But, if a row and column conflict, the row overrides the column criteria.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Cell criteria are combined with row and column criteria unless the cell criteria conflict with the other criteria.<span style=""> </span>In this case, the cell criteria override any other criteria. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If any field criteria are specified in an individual cell, all field criteria should be specified in that cell; no field criteria are inherited from the row, worksheet or column. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Report Scope criteria override all other criteria.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Tips for PS/nVision Layout Design</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></h3> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Use nPlosion to get details.<span style=""> </span>nPlosion automatically crates individual rows or columns for each detail value defined in the criteria.<span style=""> </span>When you enable nPlosion for a row, PS/nVision inserts the detail value rows immediately above the nPloded row.<span style=""> </span>Detail value columns are inserted to the left of the nPloded column.<span style=""> </span><span style="">Remember, you can nPlode Time Span too.</span><b style=""><o:p></o:p></b></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >If possible, keep the number of different trees being used in the same layout to a minimum.<span style=""> </span>Using more than 2 or 3 trees can slow performance for some database platforms.<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If any of the trees in a layout contain only a few detail values, consider using Selected Detail Values instead to reduce the number of tables joined.<span style=""> </span>Layout maintenance needs to be considered here. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Multiple Levels within a tree have no impact on PS/nVision performance (it actually ignores them).<span style=""> </span>Data volumes do impact PS/nVision performance.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Take maximum advantage of report variables and relative TimeSpans (versus absolute) to minimize layout maintenance.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.5in; text-align: justify; text-indent: -0.25in;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >When creating trees, avoid using special characters in your tree node descriptors.<span style=""> </span>Apostrophes can cause nVision to error out if the tree node is used as a detail value on a summary ledger.<span style=""> </span><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If you have problem with “Initializing” Delays<span style=""> </span>-<span style=""> </span>“Initializing” includes a number of activities, primarily digesting the scope and the layout.<span style=""> </span>A large layout takes much longer than small ones.<span style=""> </span>If your layout has inactive cells with active rows &amp; columns below them and to the right, creating a huge area for nVision &amp; Excel to search for potential cell criteria. Some formatting operations at the row or column level can make the active part of the layout seem much bigger than it actually is.<span style=""> </span>If you have a long Initialization delay during the run time, you can try to delete the unused cells from the sheet.<span style=""> </span><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.75in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >PS/nVision provides the ability to group multiple report requests into a single Report Book.<span style=""> </span>Report Books can be scheduled to run on a high-powered, dedicated NT server at off-peak hour.<span style=""> </span>This means that the running of Report Books can improve report performance, and frees up users’ client machines.<span style=""> </span>Now you can run multiple nVision reports at the same time on your server. <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoHeading8" style="line-height: normal;"><span style="font-size:100%;"><a name="Scenarios"></a>Scenarios from different customers</span><span style="font-size:100%;"><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" >Customer 1<o:p></o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >“…performance team are usually established from all sections of<span style=""> </span>IT and the business that control the PIA.<span style=""> </span>They meet 1 week prior and 1 week post end of month to review and analyze performance recommendations.”<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;">Customer 2<o:p></o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >“Performance monitoring of nVision can be a time consuming process that needs to combine tools that can monitor and provide Explain plans on individual pieces of SQL, yet you also need to track and record Report Request times to gauge overall gains and losses.<span style=""> </span>Once a system has gone live the complexity of reviewing Report Books, which can contain multiple Report Requests that use various Scopes running across multiple servers becomes even more complex.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >It is for this reason that I turned to developing a MS Access system linked directly into the key nVision Report, Process Request, and Report Manager Records to monitor and store statistics on all processes run across the NT Report Servers.<span style=""> </span>The database provides me with detailed analysis of performance by Report Book, Report Request, User, and Server, across any selected time period.<span style=""> </span>It can provide a per Instance average time for Report Books and Report Requests.<span style=""> </span>The functionality also includes a directly linked “Process Monitor” page that contains hyperlinks to show details of the current instances posted to the Report Manager as the job is processing and can also bring up the history of performance for a given Report Request or Report Book.”<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >PeopleSoft Consulting Services only has access to the MS Access tool.<b><o:p></o:p></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;">Customer 3</span></b><b><span style="font-family:Arial;"><o:p></o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >“The runtime for a particular nVision layout degraded significantly when it used a new effective dated department rollup tree.<span style=""> </span>Our question was whether or not<span style=""> </span>adding a new level to the tree could have caused this and whether defining the tree details to be all at the same level would help performance.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" >… the insert of the new tree level plus additional detail values was not the cause of the performance change.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify; line-height: 12pt;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >When we were updating the new tree version, we saved it with some "ranged" detail values in it.<span style=""> </span>This set the TREE_HAS_RANGES flag on the PSTREEDEFN table to “Y".<span style=""> </span>Subsequently, the customer broke out these ranges into single detail values (no more ranged values were in the tree).<span style=""> </span>However, upon saving the tree again, the TREE_HAS_RANGES flag was <u>not</u> reset to "N" (it stayed as "Y").<span style=""> </span>This caused nVision to think there were ranged values in the tree, which triggered the sql syntax change to <b>A.DEPTID>=</b></span><span style="font-size:100%;"><b><span style=";font-family:Arial;color:blue;" > </span></b><b><span style=";font-family:Arial;color:black;" >L.RANGE_FROM_10 AND A.DEPTID <= L.RANGE_TO_10</span></b></span><span style=";font-family:Arial;font-size:100%;color:black;" ><span style=""> </span>(versus <b>A.DEPTID=L.RANGE_FROM_10 </b>if the flag is "N")<b>.<span style=""> </span></b>This was a much slower statement on the database.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" ><o:p> </o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" >Customer 4</span></b><b><span style=";font-family:Arial;color:black;" ><o:p></o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >“….rebuilding, deleting orphaned rows from selector tables improved our performance .”</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style="font-size:100%;"><b><span style=";font-family:Arial;color:black;" >Customer 5</span></b><b><span style=";font-family:Arial;color:black;" ><o:p></o:p></span></b></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >“This customers scenario was very difficult to troubleshoot.<span style=""> </span>A consultant had to be sent onsite to continuously monitor the system and to finally arrive at a solution<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >In the beginning nVision reports were running slowly after checking couple of things like indexes, selector tables it seemed to improve but then summary reports for manager were bombing out on 3 tier with memory error.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >After tuning the layouts, it's was working, but not consistently. Some complex layouts were having reference memory error on 2/3, and web.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Customer purged SELECTOR table and control table. It worked for the beginning, then a few hours later the Dr. Watson errors happened again<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >By (1) tuning the PSTREESELECT10 and PSTREESELECT05 tables and (2) purging these 2 tables and their corresponding rows in PSTREESELCTL table regularly, they are able to get nVision layouts run in 2, 3, and 4 tier.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >If the tables don't get purged after a few hours, when more than 2 sessions logged into 3 tier to run nVision, they could potentially get the Dr. Watson/memory error.<span style=""> </span>Log files indicated that service is timing out due to the time it takes to run the sql's.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >Eventually it turned out the issue was with SQL Server and not with nVision,<span style=""> </span>customer had to upgrade their SQL server to sp4. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="margin-left: 0.25in; text-align: justify;"><span style=";font-family:Arial;font-size:100%;color:black;" >The server they are using is a dedicated database server. They have limited the amount of memory available to SQLserver to 1 GB (machine has 1.5GB). Even then, we don't understand why sqlserver uses up all the memory available. We asked the customer to reboot there database server machine and not run nVision or any other process against the server for the day, and then observe what happens at the end of the day. We noticed that within about 4 hours of rebooting, memory usage had MAXed out even before any process was run against the database. Then when the consultant tried to run a crystal report against the database, the process just froze (did not complete) and "insufficient memory" alarms were being posted by a diagnostic tool called spotlight by quest software.<span style=""> </span>At this point, we came to a conclusion that<span style=""> </span>the bulk of the problem seems to reside within the database server.<span style=""> </span>“</span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoHeading9" style=""><span style="font-size:100%;"><a name="Quick_Check_List"></a></span><span style="font-size:100%;">Quick check list<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Before calling GSC, make sure the following things are checked<o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <ol style="margin-top: 0in;" start="1" type="1"><li class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >Isolate the problem to see if it’s happening with one report or all the report.<o:p></o:p></span></li><li class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >If it’s happening with one report check trees, indexes, selectors, scope field values for that report.<o:p></o:p></span></li><li class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" >If it’s happening to all the reports <o:p></o:p></span></li></ol> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Audit your trees<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Verify Indexes on all the tables used by nVision.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >See that you are up-to-date with the current patches on your database.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Compare two, three and web for performance time.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Delete orphaned rows from selector tables.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Check if any reports are using Queries and try to tune the queries.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Use the new logging feature to get more information. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Check Network Traffic.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Check for other Job’s, Report's, backup’s, background process that are running on the server hosing up the server resources. <o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >Check for locks on tables being used by nVision. Exclusive table lock from other processes will cause that particular sql running at that time to time-out, nVision will then continue to run the next SQL.<o:p></o:p></span></p> <p class="MsoNormal" style="margin-left: 1in; text-align: justify; text-indent: -0.25in;"><!--[if !supportLists]--><span style=";font-family:Wingdings;font-size:100%;" ><span style="">§<span style=""> </span></span></span><!--[endif]--><span style=";font-family:Arial;font-size:100%;" >If nVision reports are scheduled to run during the night make sure that they run after your Ledger update processes to avoid exclusive lock. <o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><span style=""> </span></span><span style=";font-family:Arial;font-size:100%;" ><o:p></o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <h3 style="text-align: justify;"><span style="font-size:100%;"><a name="Information"></a></span><span style=";font-family:Arial;font-size:100%;" >Where to look for more information<o:p></o:p></span></h3> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <ul style="margin-top: 0in;" type="square"><li class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;">PeopleBooks<o:p></o:p></span></b></span></li></ul> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <ul style="margin-top: 0in;" type="square"><li class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;">nVision Red Paper<o:p></o:p></span></b></span></li></ul> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p> <ul style="margin-top: 0in;" type="square"><li class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;">GSC Resolution Database. <o:p></o:p></span></b></span></li></ul> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style=";font-family:Arial;font-size:100%;" ><o:p> </o:p></span></p> <p class="MsoNormal" style="text-align: justify;"><span style="font-size:100%;"><b><span style="font-family:Arial;"><o:p> </o:p></span></b></span></p><div class="blogger-post-footer"><img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/7347297747135909504-3625267529307874617?l=workingscripts.blogspot.com'/></div>Iouri Chadourhttp://www.blogger.com/profile/14350262999776091312noreply@blogger.com0