Vern, Rob, Charles.  Thanks so much for the input.  I have a much better
understanding of DB2/400 now (and some of its history).

Vern, sorry about using "SQL" generally.  Please note that I only slipped up
once (I think).  ;-)
Earlier in the thread I made sure to say "MS SQL" or "SQL Server".  In the
end I might have been typing too fast.

Thanks again.

<vhamberg@xxxxxxxxxxx> wrote in message
news:041220062241.8357.443D8227000383A8000020A52200750784099D0A0D030E0890@xxxxxxxxxxxxxx
> Hi Ryan
>
> I have to smile a bit (with no intended offense to be sure) at the
questions - because these details are things we never think about much if at
all when working on the iSeries. Lots of DBA stuff is just handled by the
OS. And most of these details are not general public knowledge anyway.
>
> Things like "strongly favoring CHAR" have more to do with the heritage
than any SQL decision or attempt to prevent fragmentation. I mean, by
definition, everything is fragmented on the iSeries - all objects are
striped across multiple arms (each arm is a disk drive in PC terms) and this
is to give optimum performance for multiple users.
>
> JDE came from long ago on the iSeries - its tables (physical files) were
originally designed before there was much SQL on the machine or its
predecessor, the System/38. Variable length data types simply did not exist.
The implementation of VARCHARs involves 2 varieties of low-level objects
called spaces. As you might have noticed, iSeries has an extra attribute for
VARCHARs called allocated length. This is the amount of space in the
fixed-length main data space. As Charles, I think, said, data longer than
the allocated length is stored in what is called an auxiliary space. Each
space is 16MB in size and there can be several of these as needed.
>
> These spaces are the primary building block of lots of things on the
iSeries - we don't deal with them as such, however. Physical files (how SQL
tables are implemented) are made up of several kinds of spaces - there are
several subtypes. Again, these are not things we normally mess with.
>
> Having said that, it is possible to see the structures, but without
documentation that few people have, it is difficult to traverse. Suffice to
say, I did this while contracted to the database performance lab in
Rochester. The main data space(s) consist of space headers that have some of
their characteristics. The actual data comes in rows with (for those without
variable length and without null-capable) a single byte that contains the
deleted flag. Deleted records still exist, they are just not processed. You
asked about RGZPFM - yes deleted records are compressed out. I've always
thought of it as a copy of active records to a temp copy, then emptying out
the original and copying back in. Don't know about page split pointers - if
such a thing is used, they are resolved. But I cannot assume that what you
mean by page is the same thing as used on iSeries.
>
> There is much more to be said - and most of it is not useful to know on
the iSeries, IMO.  Sorry, but the matter of database agnosticism has little
to do, I think, with the low-level implementation of the database that you
seem to be describing.
>
> Just a bit more - you use the term "SQL" - I have a feeling you mean "SQL
Server" - I think it is best to remember that "SQL" is a language, "SQL
Server" is an RDBMS that uses SQL as the language for data definition and
manipulation. The same confusion is rife where I work, too, esp. among those
who have not come from the iSeries. Not a criticism, it is just confusing
semantically for me.
>
> On another matter, the indexes on iSeries are always separate from the
tables. DB2 on AIX has the option, I believe, of interleaving the data with
the index records, which might seem to offer some performance advantages. Is
this like the clustered indexes you describe? But indexes on iSeries are
very efficient modified B-trees. Also, if the columns being retrieved are
all in the index, then the data file is usually not used to get the data -
known as index-only access method - and this gets rid of the "2 reads" IO
problem with indexed access.
>
> Let me suggest a link that might be helpful -
> http://www-03.ibm.com/servers/enable/site/db2/porting.html
> has several links that might be interesting. There are porting guides for
coming from, e.g., Oracle and SQL Server. Another link that is especially
good, as it discusses the general architecture of iSeries, is labeled
"General iSeries Porting Information".
>
> This has been interesting, hope it is helpful.
> Vern
>
> -------------- Original message -------------- 
> From: "Ryan Hunt" <ryan.hunt@xxxxxxxxxxxxx>
>
> > Charles, thanks for the correction.
> >
> > Since this "heap" like format is so common on the iSeries, I'm inclined
to
> > think that iSeries tables are not as apt to suffer from the table
> > fragmentation and the forward-pointer random I/O issue as described in
the
> > previously included link.
> >
> > However, with that being said, JDE table design does STRONGLY favor the
use
> > of CHAR (or rather, strongly dis-favors the use of all variable lengh
data
> > types) which pads values with spaces as necessary. This padding may
waste
> > some drive space, but it does make it MUCH less likely that records will
> > change record length after an update. This in turn will decrease page
> > splits (which in SQL would prevent a forward-pointer). Maybe this is
> > another tactic used to be RDBMS agnostic - or maybe iSeries performance
> > suffers from page splits as well.
> >
> > Would you be so gracious as to entertain yet another one of my
questions?
> > Also, if forward-pointers do exist on the iSeries, does the RGZPFM of an
> > object remove deleted records and resolve page split pointers?
> >
> > "Wilt, Charles" wrote in
> > message
> >
news:F520B5C51DB10041B239BC06383A7EDC01C48967@xxxxxxxxxxxxxxxxxxxxxxxxxx
> > > > -----Original Message----- 
> > > > From: midrange-l-bounces@xxxxxxxxxxxx
> > > > [mailto:midrange-l-bounces@xxxxxxxxxxxx]
On
> > Behalf Of Ryan Hunt
> > > > Sent: Wednesday, April 12, 2006 2:42 PM
> > > > To: midrange-l@xxxxxxxxxxxx
> > > > Subject: Re: Different Physical File Attributes.
> > > >
> > > > Charles, thanks for all the info. While you've been learning
> > > > SQL server
> > > > you've expanded my knowledge of the iSeries.
> > > >
> > > > I still have a question about the "Arrival" sequence tables.
> > > > "Arrival"
> > > > sequence tables on the iSeries are synonymous (or most
> > > > synonymous) with heap
> > > > tables in SQL Server (as you've stated).
> > >
> > > You misunderstood me.
> > >
> > > Arrival sequence tables on the iSeries are _not_ synonymous with heap
> > > tables in SQL server.
> > >
> > > In fact, both "arrival" and "keyed" iSeries tables work like SQL
server
> > > heap tables.
> > >
> > > On the iSeries, it doesn't matter if you're dealing with a "keyed
> > > tabled" or an "arrival" table, the physical layout of the data is
> > > generally in arrival sequence. I say generally, because if all you do
> > > are ADDs and UPDATEs then the data is in arrival sequence. If you do
> > > DELETEs and ADDs and the table is set to reuse deleted records, by
> > > default tables created using SQL instead of DDS are so configured;
then
> > > there is no real order to the physical data.
> > >
> > > > In the SQL Server
> > > > world, heaps are
> > > > notoriious for page fragmentation and forward-pointer issues.
> > > >
> > > > Rather than writing a big explanation, check out the section titled:
> > > > "Problems with not having a clustered index " on the followint page:
> > > > http://www.quest-pipelines.com/newsletter-v4/1103_B.htm
> > >
> > > Actually, that's the page where I found out the info about SQL server.
> > >
> > > >
> > > > Do iSeries arrival sequence tables suffer from the same or
> > > > similar maladies?
> > >
> > > No. As far forward pointers go, the iSeries doesn't use them. Rows are
> > > never normally moved. The example given for SQL server, expanding a
> > > VARCHAR column, doesn't apply as the iSeries allocates a fix amount of
> > > space (>=0) for VARCHAR (and BLOB,CLOB) fields in the standard row
data
> > > space. Anything more than the allocated space is stored outside the
> > > standard row data space.
> > >
> > > As far as fragmentation, I'm not sure that it's a big deal for heap
> > > tables in SQL server, "Fragmentation matters little in heap tables
> > > because the data rows do not have to be kept in order." from
> > >
http://www.dba-sql-server.com/sql_server_tips/t_hpsdba_41_indexdefrag_db
> > > cc_dbreindex.htm
> > >
> > > As far as the iSeries goes, the above quote certainly applies since
> > > iSeries tables don't have an order.
> > >
> > > Fragmentation in general on the iSeries isn't usually a concern.
Single
> > > level store is part of the reason. Plus the fact that the iSeries,
like
> > > its predecessors were designed from the ground up to be scalable
> > > multi-user systems. Part of that design was a RAID 0 disk subsystem.
> > > The OS is highly optimized for dealing with pieces of objects
scattered
> > > all over the place. Like memory, the more disks you add to a iSeries
> > > the better it performs.
> > >
> > > >
> > > > Thanks for all the insite.
> > > >
> > > > Ryan
> > > >
> > >
> > > HTH,
> > >
> > > Charles Wilt
> > > -- 
> > > iSeries Systems Administrator / Developer
> > > Mitsubishi Electric Automotive America
> > > ph: 513-573-4343
> > > fax: 513-398-1121
> > >
> > >
> > > -- 
> > > This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
> > list
> > > To post a message email:
> > MIDRANGE-L@xxxxxxxxxxxx
> > > To subscribe, unsubscribe, or change list options,
> > > visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> > > or email: MIDRANGE-L-request@xxxxxxxxxxxx
> > > Before posting, please take a moment to review the archives
> > > at http://archive.midrange.com/midrange-l.
> > >
> > >
> >
> >
> >
> > -- 
> > This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
> > To post a message email:
MIDRANGE-L@xxxxxxxxxxxx
> > To subscribe, unsubscribe, or change list options,
> > visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> > or email: MIDRANGE-L-request@xxxxxxxxxxxx
> > Before posting, please take a moment to review the archives
> > at http://archive.midrange.com/midrange-l.
> >
> -- 
> This is the Midrange Systems Technical Discussion (MIDRANGE-L) mailing
list
> To post a message email:
MIDRANGE-L@xxxxxxxxxxxx
> To subscribe, unsubscribe, or change list options,
> visit: http://lists.midrange.com/mailman/listinfo/midrange-l
> or email: MIDRANGE-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/midrange-l.
>
>




As an Amazon Associate we earn from qualifying purchases.

This thread ...

Replies:

Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.