<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META NAME="Generator" CONTENT="MS Exchange Server version 6.0.6603.0">
<TITLE>Indexed or Seq?</TITLE>
</HEAD>
<BODY>
<!-- Converted from text/rtf format -->
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Hi everyone,</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I've been given the task of speeding up record complexes for a master/detail set of tables, where the detail table</FONT> <FONT SIZE=2 FACE="Arial">has</FONT> <FONT SIZE=2 FACE="Arial">over 3 million records. Don't worry, I am not going to ask the obvious, but I was wondering if someone can help me determine how QUIZ look</FONT><FONT SIZE=2 FACE="Arial">s</FONT> <FONT SIZE=2 FACE="Arial">up</FONT> <FONT SIZE=2 FACE="Arial">data for where one the lookup field is the first field in the UNIQUE index set.</FONT></SPAN></P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Here are the QSHOWs for the two tables in question ...</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Record: INVOICED_DETAIL</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> of Database: #####</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Organization: RELATIONAL</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Null Values Allowed:No</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Type: ORACLE</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Hold Cursor: Unspecified</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Open: #####</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Record Size: 558 Bytes</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">-- Record Contents --</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Item Type Size Occ Offset</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r ORDER_NO INTEGER SIGNED 8 0</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PRIMARY_ID CHARACTER 2 8</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r SECONDARY_ID CHARACTER 2 10</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PROD_LVL0 CHARACTER 2 12</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PROD_LVL1 CHARACTER 2 14</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PROD_LVL2 CHARACTER 2 16</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PROD_LVL3 CHARACTER 2 18</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PROD_LVL4 CHARACTER 2 20</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r PRODUCT_CODE VARCHAR 16 22</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r EVENT_ID INTEGER SIGNED 4 38</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">..</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">etc</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">..</FONT></SPAN>
</P>
<BR>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">-- Index Contents --</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> ** ORDER_KEY_ID is a UNIQUE index **</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Segment Type Size Ord Offset</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> ORDER_NO INTEGER SIGNED 8 A 0</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PRIMARY_ID CHARACTER 2 A 8</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> SECONDARY_ID CHARACTER 2 A 10</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PROD_LVL0 CHARACTER 2 A 12</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PROD_LVL1 CHARACTER 2 A 14</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PROD_LVL2 CHARACTER 2 A 16</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PROD_LVL3 CHARACTER 2 A 18</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PROD_LVL4 CHARACTER 2 A 20</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> EVENT_ID INTEGER SIGNED 4 A 22</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> PRODUCT_SEQ_NO INTEGER SIGNED 4 A 26</FONT></SPAN>
</P>
<BR>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Other indexes are all REPEATING and do not reference any of the above indexes</FONT></SPAN>
</P>
<BR>
<BR>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Record: INVOICED_MASTER</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> of Database: #####</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Organization: RELATIONAL</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Null Values Allowed:No</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Type: ORACLE</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Hold Cursor: Unspecified</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Open: #####</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Record Size: 591 Bytes</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">-- Record Contents --</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Item Type Size Occ Offset</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">r ORDER_NO INTEGER SIGNED 8 0</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">..</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">etc</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">..</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">-- Index Contents --</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> ** ORDER_NO_IM is a UNIQUE index **</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> Segment Type Size Ord Offset</FONT></SPAN>
<BR><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New"> ORDER_NO INTEGER SIGNED 8 A 0</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Again, there are other repeating indexes, but they are not relevant to my query.</FONT></SPAN>
</P>
<BR>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">If I link the two tables using a simple direct link, like the following ...</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=1 FACE="Courier New">access invoiced_master in hisdb &</FONT></SPAN>
<BR><SPAN LANG="en-us"> <FONT SIZE=1 FACE="Courier New">link order_no to order_no of invoiced_detail in hisdb</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Will QUIZ use the UNIQUE index defined in INVOICED_DETAIL to look its records directly, or because the ORDER_NO column is not<B> explicitly</B> defined as a primary key (not unique of course), will it use sequential searching?</FONT></SPAN></P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">I hope I made myself clear here. If not please ask.</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">PS: this email contains rich text formatting. Please forgive me if it appears in your mailbox all over the place!</FONT></SPAN>
</P>
<P><SPAN LANG="en-us"><FONT SIZE=2 FACE="Arial">Thanks guys.</FONT></SPAN>
</P>
</BODY>
</HTML>