Home Page for the TeradataForum
 

Archives of the TeradataForum

Message Posted: Mon, 20 Mar 2006 @ 09:30:04 GMT


     
  <Prev Next>   <<First <Prev Next> Last>>  


Subj:   Re: Identifying Large NUSI ?
 
From:   Anomy Anom

<-- Anonymously Posted: Friday, March 17, 2006 20:15 -->

Dieter & Victor,

Dieter said:

  "There's never a partition 0 physically stored: ..."  


Correct.


  "Btw, during an upgrade to V2R5 only the cylinder index format changed. If the record layout would be different in V2R5 then *every* table/datablock had to be changed during an upgrade. Ouch."  


In my e-mail I said that both master index and cylinder index structures are changed, and user tables are left untouched.

About the Partition # in NUSI structures for NPPI tables:

My assumption was wrong, I checked with filer and I see they write the Row ID, not the Row Key, i.e. they don't use the Partition # 0 (zero), and this confirms what Dieter said. So as Victor said in an earlier post, we must consider an 8 bytes length instead of 10 for this part of the row in NUSI subtables for NPPI tables.

I created a small table, only two columns, defined a NUSI for the second column, and inserted a single row, then checked both rows, in data subtable and index subtable, using a hex dump in filer.

Dump of the data row:

     Row  (Range) ==>
     > row /h 0. 1595. 1024. 0
     row /h 0. 1595. 1024. 0

     Command has been sent to Slave tasks.


     vproc  0 (0000)  response

     Can't get the requested table header ( 0000 063B 0400 )
     Subtable     0  1595  1024 ( 0000 063B 0400 ) doesn't exist
     Table doesn't exist



     vproc  1 (0001)  response


     ROW
     length          rowid                flags presences
            part    h0    h1    u0   u1
     ------ ----- ----- ----- ----- ----- ----- ---------
      001A   0000  79B6  9E37  0000  0001    00        E0

      Starting Address:  7be40024
     0000:    1A 00 B6 79 37 9E 00 00.01 00 00 E0 01 00 00 00*...y7...........*
     0010:    41 41 41 41 41 41 41 41.41 41                    *AAAAAAAAAA*


     Row ==>

     The indexed column contains all "A" (hex 41), and the row hash for the
     data row is 79B6 9E37, with uniqueness value = 1.

     Dump of the NUSI row:

     > row /h 0. 1595. 1028.
     row /h 0. 1595. 1028.0

     Command has been sent to Slave tasks.


     vproc  0 (0000)  response

     Can't get the requested table header ( 0000 063B 0404 )
     Subtable     0  1595  1028 ( 0000 063B 0404 ) doesn't exist
     Table doesn't exist



     vproc  1 (0001)  response


     ROW
     length          rowid                flags presences
            part    h0    h1    u0   u1
     ------ ----- ----- ----- ----- ----- ----- ---------
      0026   0000  B04D  66E2  0000  0001    00        80

      Starting Address:  7bb20024
     0000:    26 00 4D B0 E2 66 00 00.01 00 00 80 12 00 1E 00*&.M..f..........*
     0010:    26 00 00 C0 41 41 41 41.41 41 41 41 41 41 B6 79*&...AAAAAAAAAA.y*
     0020:    37 9E 00 00 01 00                                *7.....*

The NUSI row as dumped by filer is 38 bytes long (row length indicator 0026 hex).

After first 2 bytes, we have 8 bytes for the row hash and uniqueness for the NUSI row (this is not converted, it is shown in little endian).

This is followed by 10 bytes, which contain spare, presence & misc.

Then we have the index value, all "A", hex 41, 10 bytes.

And finally we get to the Row ID, it only has 8 bytes, containing in little endian the row hash and uniqueness of the data row (only one row for now) which contains this index value.


Best regards.



     
  <Prev Next>   <<First <Prev Next> Last>>  
 
 
 
 
 
 
 
 
  
  Top Home Privacy Feedback  
 
 
Copyright for the TeradataForum (TDATA-L), Manta BlueSky    
Copyright 2016 - All Rights Reserved    
Last Modified: 15 Jun 2023