<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	>
<channel>
	<title>Comments on: Database Issues - Trying to prove that something has to be done</title>
	<atom:link href="http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/feed/" rel="self" type="application/rss+xml" />
	<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/</link>
	<description></description>
	<pubDate>Thu, 26 Nov 2009 21:28:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.6.2</generator>
		<item>
		<title>By: Graybeard52</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-64063</link>
		<dc:creator>Graybeard52</dc:creator>
		<pubDate>Fri, 29 May 2009 11:25:11 +0000</pubDate>
		<guid isPermaLink="false">#comment-64063</guid>
		<description>Another tip.  If you haven't already done so, make sure the QAQQINI file has IGNORE_DERIVED_INDEXES set to *YES.   This can improve SQL performance by 400% or more.  In your case, any SQL query over this PF will never use the SQL engine, but the older (and slower) CQE engine, unless this value has been set.</description>
		<content:encoded><![CDATA[<p>Another tip.  If you haven&#8217;t already done so, make sure the QAQQINI file has IGNORE_DERIVED_INDEXES set to *YES.   This can improve SQL performance by 400% or more.  In your case, any SQL query over this PF will never use the SQL engine, but the older (and slower) CQE engine, unless this value has been set.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Yorkshireman</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-64017</link>
		<dc:creator>Yorkshireman</dc:creator>
		<pubDate>Thu, 28 May 2009 08:04:08 +0000</pubDate>
		<guid isPermaLink="false">#comment-64017</guid>
		<description>I'd suggest you need to look *very* closely at the business case for doing this.  

Whilst it all makes sense from a technical point of view, given unlimited cost free resource, you are proposing to create an entirely new system which will require complete and thorough testing to much higher standard (probably) than the original code, and will therefore throw out all kinds of 'bugs' which were always there but now need fixing.  This will taint your project.  

Unless you have that unlimited resource, I'd follow the paths outlined.

First - get some good metrics together - how many files, records, disk space used.  If you can gather some performance data by runing some 'typical' work under performance monitor, then do that.  
Examine the code - how many programs, lines, File definitions (F lines) of what type of file access
Write a utility to extract the data from the LF's and determine how many are duplicated, or could be consolidated, and what the criteria for the select omits are.  Where are they used - someone said that you may find data extractions were being done by creating a LF. 


Second - look at the archiving story - what can go, and how you preserve a means fo gaining access. How much disk real estate is regained, backup times improved, DR startup times improved.  
you only mention 1 file - there must be more which are referentially linked - you'll need a function of some sort - SQL/RPG that will extract the old stuff - into, say, a history library, and remove from live after a verification check. 

When you have numbers, you can estimate effort and detail benefits.  


88 million isn't a big number for iSeries, and if it's performance now is perceived to be 'OK' then why spend the money? - unless you can show cost reductions in ownership of the box and performance improvements which will reduce/remove/delay the need for upgrades. .  


- just my thoughts..</description>
		<content:encoded><![CDATA[<p>I&#8217;d suggest you need to look *very* closely at the business case for doing this.  </p>
<p>Whilst it all makes sense from a technical point of view, given unlimited cost free resource, you are proposing to create an entirely new system which will require complete and thorough testing to much higher standard (probably) than the original code, and will therefore throw out all kinds of &#8216;bugs&#8217; which were always there but now need fixing.  This will taint your project.  </p>
<p>Unless you have that unlimited resource, I&#8217;d follow the paths outlined.</p>
<p>First - get some good metrics together - how many files, records, disk space used.  If you can gather some performance data by runing some &#8216;typical&#8217; work under performance monitor, then do that.<br />
Examine the code - how many programs, lines, File definitions (F lines) of what type of file access<br />
Write a utility to extract the data from the LF&#8217;s and determine how many are duplicated, or could be consolidated, and what the criteria for the select omits are.  Where are they used - someone said that you may find data extractions were being done by creating a LF. </p>
<p>Second - look at the archiving story - what can go, and how you preserve a means fo gaining access. How much disk real estate is regained, backup times improved, DR startup times improved.<br />
you only mention 1 file - there must be more which are referentially linked - you&#8217;ll need a function of some sort - SQL/RPG that will extract the old stuff - into, say, a history library, and remove from live after a verification check. </p>
<p>When you have numbers, you can estimate effort and detail benefits.  </p>
<p>88 million isn&#8217;t a big number for iSeries, and if it&#8217;s performance now is perceived to be &#8216;OK&#8217; then why spend the money? - unless you can show cost reductions in ownership of the box and performance improvements which will reduce/remove/delay the need for upgrades. .  </p>
<p>- just my thoughts..</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dcantwell</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63979</link>
		<dc:creator>Dcantwell</dc:creator>
		<pubDate>Wed, 27 May 2009 17:16:54 +0000</pubDate>
		<guid isPermaLink="false">#comment-63979</guid>
		<description>Hello Jenny,

Yes, everyone here is very knowledgeable and helpful.

Actually, funny I should be bringing this topic up.  System i News just published another article about the topic by Dan Cruikshank.

Thank you,
Dave</description>
		<content:encoded><![CDATA[<p>Hello Jenny,</p>
<p>Yes, everyone here is very knowledgeable and helpful.</p>
<p>Actually, funny I should be bringing this topic up.  System i News just published another article about the topic by Dan Cruikshank.</p>
<p>Thank you,<br />
Dave</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: JennyMack</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63977</link>
		<dc:creator>JennyMack</dc:creator>
		<pubDate>Wed, 27 May 2009 17:02:58 +0000</pubDate>
		<guid isPermaLink="false">#comment-63977</guid>
		<description>Hey Dcantwell,

Welcome to IT Knowledge Exchange. It looks like your question has created quite a dialogue here! Are you finding the information useful?

Jenny
Community Manager</description>
		<content:encoded><![CDATA[<p>Hey Dcantwell,</p>
<p>Welcome to IT Knowledge Exchange. It looks like your question has created quite a dialogue here! Are you finding the information useful?</p>
<p>Jenny<br />
Community Manager</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dcantwell</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63959</link>
		<dc:creator>Dcantwell</dc:creator>
		<pubDate>Tue, 26 May 2009 19:32:23 +0000</pubDate>
		<guid isPermaLink="false">#comment-63959</guid>
		<description>Thank you very much for the article Wilson.  I think it's an excerpt from
[A href="http://www-03.ibm.com/systems/resources/systems_i_software_db2_pdf_Performance_DDS_SQL.pdf"]This document by Dan Cruikshank[/A]  

This was the basis of my whole idea.   But, as I look more into i don't now how much it will benefit us immediately.  The boss did like the idea of making our entire database "portable" to another system using the SQL generated tables.

One thing about the Select/Omit stuff after reading that article:

Dan did mention using DYNSLT when changing the logical files.  This is supposed to help improve the access path.</description>
		<content:encoded><![CDATA[<p>Thank you very much for the article Wilson.  I think it&#8217;s an excerpt from<br />
<a href="http://www-03.ibm.com/systems/resources/systems_i_software_db2_pdf_Performance_DDS_SQL.pdf">This document by Dan Cruikshank</a>  </p>
<p>This was the basis of my whole idea.   But, as I look more into i don&#8217;t now how much it will benefit us immediately.  The boss did like the idea of making our entire database &#8220;portable&#8221; to another system using the SQL generated tables.</p>
<p>One thing about the Select/Omit stuff after reading that article:</p>
<p>Dan did mention using DYNSLT when changing the logical files.  This is supposed to help improve the access path.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WilsonAlano</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63954</link>
		<dc:creator>WilsonAlano</dc:creator>
		<pubDate>Tue, 26 May 2009 18:58:43 +0000</pubDate>
		<guid isPermaLink="false">#comment-63954</guid>
		<description>The link doesn't work! Here it again.

http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files</description>
		<content:encoded><![CDATA[<p>The link doesn&#8217;t work! Here it again.</p>
<p>&nbsp;&lt;a href="http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files" title="http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files" target="_blank"&gt;http://systeminetwork.com/article/perfor&#8230;&lt;/a&gt;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WilsonAlano</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63953</link>
		<dc:creator>WilsonAlano</dc:creator>
		<pubDate>Tue, 26 May 2009 18:57:56 +0000</pubDate>
		<guid isPermaLink="false">#comment-63953</guid>
		<description>Hi Dave,

LF are real indexes. The difference between an SQL index and a LF is basically the page size (block of keys) used in each case. SQL indexes have bigger page size than LF and for sequential by key processes it's better than LF. For random access the difference is almost zero and in some cases it's worst.

You must be aware that SQL indexes doesn't allow select/omit and, if the file will stay with several millions records in it after purge, may be a LF is your better solution. There a rule that if a LF with select/omit select 30% or less of records in the file, it's a good a idea to keep or create one.

You can take a look at this article

[A href="http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files"]http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files[/A]

I think it will help you.

Regards,
Wilson</description>
		<content:encoded><![CDATA[<p>Hi Dave,</p>
<p>LF are real indexes. The difference between an SQL index and a LF is basically the page size (block of keys) used in each case. SQL indexes have bigger page size than LF and for sequential by key processes it&#8217;s better than LF. For random access the difference is almost zero and in some cases it&#8217;s worst.</p>
<p>You must be aware that SQL indexes doesn&#8217;t allow select/omit and, if the file will stay with several millions records in it after purge, may be a LF is your better solution. There a rule that if a LF with select/omit select 30% or less of records in the file, it&#8217;s a good a idea to keep or create one.</p>
<p>You can take a look at this article</p>
<p><a href="http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files"&nbsp;&lt;a href="http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files" title="http://systeminetwork.com/article/performance-comparison-dds-defined-files-and-sql-defined-files" target="_blank"&gt;http://systeminetwork.com/article/perfor...&lt;/a&gt;</a></p>
<p>I think it will help you.</p>
<p>Regards,<br />
Wilson</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dcantwell</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63951</link>
		<dc:creator>Dcantwell</dc:creator>
		<pubDate>Tue, 26 May 2009 17:49:25 +0000</pubDate>
		<guid isPermaLink="false">#comment-63951</guid>
		<description>@Phil: 
Most of the records are really old.  A history file system was just never implemented.  That's part of my idea to fix it.  around 67 million of them are from 2005 on back.  That's about a 70% reduction if we do it. 

I agree with you completely about the logical files.  I've begun analyzing them and there are a lot of repeated keys.  This biggest problem is the idea here goes like this: "Lets create a new logical so all we have to do is setll reade the data we want"  Instead of compensating for it in the code.  A ton of them have Select and Omits included in their definition. 

So if a new report program was needed, the programmer made a new logical to make his/her life easier.  Never mind the consequences.  There's also no one in charge of the databases (No DBA).

@Martin:
No reporting tools, no program generators.  This is an insurance system I'm working with. We're constantly audited and constantly changing to bring business in the door.

 That's why it's going to be hard for me to prove that the time and effort spent on this will be worth it while continuing the support of the system.  I believe a staged approach to this whole concept would work best for the business.



Overall, we've been told to avoid using SQLRPGLE for programs because the initial time you use the program, it's slow. (In reality, it isn't compared to using RPGLE with logical files defined each time).  I took a program that used to run 5 hours, re-wrote it in SQLRPGLE and it runs in 20 - 30 minutes.

But, from some research, using SQL defined tables and indexes would fix the SQLRPGLE problem due to the fact that no real "indexes" are defined.  If you look at the iSeries navigator, all the logical files right now are considered "views" and not "indexes".   &#60;&#60;&#60;&#60; Please tell me if I'm wrong.</description>
		<content:encoded><![CDATA[<p>@Phil:<br />
Most of the records are really old.  A history file system was just never implemented.  That&#8217;s part of my idea to fix it.  around 67 million of them are from 2005 on back.  That&#8217;s about a 70% reduction if we do it. </p>
<p>I agree with you completely about the logical files.  I&#8217;ve begun analyzing them and there are a lot of repeated keys.  This biggest problem is the idea here goes like this: &#8220;Lets create a new logical so all we have to do is setll reade the data we want&#8221;  Instead of compensating for it in the code.  A ton of them have Select and Omits included in their definition. </p>
<p>So if a new report program was needed, the programmer made a new logical to make his/her life easier.  Never mind the consequences.  There&#8217;s also no one in charge of the databases (No DBA).</p>
<p>@Martin:<br />
No reporting tools, no program generators.  This is an insurance system I&#8217;m working with. We&#8217;re constantly audited and constantly changing to bring business in the door.</p>
<p> That&#8217;s why it&#8217;s going to be hard for me to prove that the time and effort spent on this will be worth it while continuing the support of the system.  I believe a staged approach to this whole concept would work best for the business.</p>
<p>Overall, we&#8217;ve been told to avoid using SQLRPGLE for programs because the initial time you use the program, it&#8217;s slow. (In reality, it isn&#8217;t compared to using RPGLE with logical files defined each time).  I took a program that used to run 5 hours, re-wrote it in SQLRPGLE and it runs in 20 - 30 minutes.</p>
<p>But, from some research, using SQL defined tables and indexes would fix the SQLRPGLE problem due to the fact that no real &#8220;indexes&#8221; are defined.  If you look at the iSeries navigator, all the logical files right now are considered &#8220;views&#8221; and not &#8220;indexes&#8221;.   &lt;&lt;&lt;&lt; Please tell me if I&#8217;m wrong.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Gilly400</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63945</link>
		<dc:creator>Gilly400</dc:creator>
		<pubDate>Tue, 26 May 2009 16:20:02 +0000</pubDate>
		<guid isPermaLink="false">#comment-63945</guid>
		<description>Hi Dave,

150 logical files over one PF is absolute madness IMHO.  Sounds to me like people have built temporary logicals for specific tasks and then never removed them.

Do you have any reporting tools that may be building logicals (something like business objects or showcase vista) - this might be worth checking?  Do you use any program generators/3GL's/Case tools (synon/lansa/asset/etc) - these could also be building unnecessary logicals?

Many of the systems I've worked with (in all different sorts of business - banking/finance, manufacturing, retail, etc) don't have 150 logical files on the whole system, let alone over one PF.

Your approach looks sound to me.

I've never gone down the road to convert to tables and indexes and I'm not sure what the benefits are of this, but reducing the number of logicals and the amount of data held in PF's is bound to give an improvement in performance (as well as a reduction in used disk space).

Regards,

Martin Gilbert.</description>
		<content:encoded><![CDATA[<p>Hi Dave,</p>
<p>150 logical files over one PF is absolute madness IMHO.  Sounds to me like people have built temporary logicals for specific tasks and then never removed them.</p>
<p>Do you have any reporting tools that may be building logicals (something like business objects or showcase vista) - this might be worth checking?  Do you use any program generators/3GL&#8217;s/Case tools (synon/lansa/asset/etc) - these could also be building unnecessary logicals?</p>
<p>Many of the systems I&#8217;ve worked with (in all different sorts of business - banking/finance, manufacturing, retail, etc) don&#8217;t have 150 logical files on the whole system, let alone over one PF.</p>
<p>Your approach looks sound to me.</p>
<p>I&#8217;ve never gone down the road to convert to tables and indexes and I&#8217;m not sure what the benefits are of this, but reducing the number of logicals and the amount of data held in PF&#8217;s is bound to give an improvement in performance (as well as a reduction in used disk space).</p>
<p>Regards,</p>
<p>Martin Gilbert.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: WilsonAlano</title>
		<link>http://itknowledgeexchange.techtarget.com/itanswers/database-issues-trying-to-prove-that-something-has-to-be-done/#comment-63944</link>
		<dc:creator>WilsonAlano</dc:creator>
		<pubDate>Tue, 26 May 2009 15:49:07 +0000</pubDate>
		<guid isPermaLink="false">#comment-63944</guid>
		<description>Hi Dave,

IMO, what you planed to do is the path to follow and in my experience, I saw a LOT of LF unnecessarily created just because programmers don't understand LF uses and concept. For example, I saw a LF with a key of 3 fields, Branch, Account and Currency and another LF with 2 fields key Branch and Account. It's totally redundant and this kind of error is frequent.
So, you have a lot of work to do but I'm sure it will worth effort.

Regards,
Wilson</description>
		<content:encoded><![CDATA[<p>Hi Dave,</p>
<p>IMO, what you planed to do is the path to follow and in my experience, I saw a LOT of LF unnecessarily created just because programmers don&#8217;t understand LF uses and concept. For example, I saw a LF with a key of 3 fields, Branch, Account and Currency and another LF with 2 fields key Branch and Account. It&#8217;s totally redundant and this kind of error is frequent.<br />
So, you have a lot of work to do but I&#8217;m sure it will worth effort.</p>
<p>Regards,<br />
Wilson</p>
]]></content:encoded>
	</item>
</channel>
</rss>
<!-- dynamic -->