All Forums Database
mandava921 1 post Joined 02/13
21 Mar 2013
How to reduce skew factor on stage tables with NoPI?

I am new to teradata. I have several stage tables defined as NoPI.
I notice most stage talbes have skew factor > 50. Is there a way to reduce this.
What is the best way to handle this situation for stage tables with NoPI?
Any ideas. please advise.

dnoeth 2695 posts Joined 11/04
21 Mar 2013

How large are those tables?
And how are they loaded?


jodba 4 posts Joined 08/09
22 Mar 2013

Hi VM,
These are probably small tables tables loaded with batch load TD utility.
Even though it is true that your NoPI tables will be loaded in round robin manner in this case, the round robin is applied on block level (not row level).
This implies that in the case of small tables that fit in one (a couple) of blocks, all the data will end up on a single (a couple) of AMPs. That should explain the high skew factor.
I would recommend distributing those tables on appropriate PI column.
You won't get any benefits on FastLoading a small NoPI table.

Sojib2BD 2 posts Joined 01/13
05 Aug 2013

I have same problem.
My Table size 480 GigaByte and  skew factor > 78 . It is 7 column  table(Using 3 Column as primary Index).
I create also NoPI table but still skew factor is same.
How i reduce it ? Please help me.

CarlosAL 321 posts Joined 04/08
05 Aug 2013

If you created the NoPI table from the PI Table the skew will be the same (AMP local). You must create the NoPI table EMPTY and load it from scratch. This should guarantee a good distribution (e.g.: low skew).

dnoeth 2695 posts Joined 11/04
07 Aug 2013

In TD14 there's also a new option for INSERT/SELECT into NoPI tables, HASH BY RANDOM, to reduce skew.


manju2399 2 posts Joined 02/14
4 weeks ago

I have a table in PRON which is having 3 Billion data. There are 4 Primary Index column, Partition on Date and secondary Index. when I checked the Distint Primary Indix on the combination of 4 columns. it is aboly 2.98 Billion. Percentage of duplicates is about 2%.
But the Skew in the table is 54. Can you plese explain how reduse the Skew factor.
Appriciate your help.

Harpreet Singh 85 posts Joined 10/11
4 weeks ago

Hi Manju,
Secondary index will not impact skew factor.
Skew factor can be reduced by choosing more evenly distributed set of columns. if your 2% is going to one amp then you can find out what distinguishs it in other columns from each other.
But reducing skew factor by choosing more appropriate Primary index column set will not help Teradata performance unless it is used in SQLs. Primary index needs to be mostly usable in sqls as whole and not partially and nearly evenly distributed.

manju2399 2 posts Joined 02/14
3 weeks ago

Thanks Harpeet ...

taj786 5 posts Joined 04/14
16 hours ago

can we take a column which is declare as compress(0) as PI  column.
max how many column we can go for combination  to find better pi for skew

krishaneesh 68 posts Joined 04/13
15 hours ago

Tajmul, compressed columns are not allowed in the PI column list. you can have any number of columns to be defined as the PI but for choosing the better PI, the skew should not be the only factor. instead we should look for what are the most frequently joined columns, what are the updates happening on the table and on what columns and other demographics.  uniquness is only for the distribution factor but if the table is huge and you have a PI which is not part of the Join, then there will be more resource consumed in redistributing the table in the database.

taj786 5 posts Joined 04/14
6 hours ago

thanks krish  for quick response
it is very helpfull for me .

taj786 5 posts Joined 04/14
6 hours ago

can you tell about the use of collect stats  in  after choosing new pi

Adeel Chaudhry 693 posts Joined 04/08
3 hours ago

Collect stats should be used once the data in underlying tables have changed significantly. It is usually done at the end of running daily/weekly batch. It gives a better view for the system to define join paths, table redistributions etc.
Folloing is the syntax of collect stats command:
COLLECT STATISTICS ON tablename COLUMN columnname;

-- If you are stuck at something .... consider it an opportunity to think anew.

You must sign in to leave a comment.