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.
How large are those tables?
And how are they loaded?
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.
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.
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).
In TD14 there's also a new option for INSERT/SELECT into NoPI tables, HASH BY RANDOM, to reduce skew.
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.
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.
Thanks Harpeet ...
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
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.
thanks krish for quick response
it is very helpfull for me .
can you tell about the use of collect stats in after choosing new pi
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.