Why do Hash joins usually perform better than Merge Joins?
Answer / narayana
In MERGE join rows to be join must be present in same AMP.. If the rows to be joined are not on the same AMP, Teradata will either redistribute the data or duplicate the data in spool to make that happen based on row hash of the columns involved in the joins WHERE Clause.Hash join takes place if one or both of the tables on each can fit completely inside the AMP's memory.AMP chooses to hold small tables in its memory for joins happening on ROW hash.
Usually optimizer will first identify a smaller table, and then sort it by the join column row hash sequence. If the smaller table is really small and can fit in the memory, the performance will be best. Otherwise, the sorted smaller table will be duplicated to all the AMPs. Then the larger table is processed one row at a time by doing a binary search against the smaller table for matched record.
Where as in MERGE join Columns to be join is Non INDEXED column. teradata will redistribute the table rows into SPOOL memory and sort them by hash code.So that matching data lies on same amp, so the join can happen on redistributed data
| Is This Answer Correct ? | 6 Yes | 0 No |
Comment whether bottleneck is an error or not.
Can we take collect stats on Dervied Tables and Volitable tables, What is Golabal Temporary table what is the use of this Golabal Temporary table ,When we create any kind table in Teradata it will show in Golabal Temporary table
What is the use of virtual processor connectivity in teradata?
Aborted in Phase 2 data acquistion completed in fastload?
What are the available primary index types?
can we load 10 millions of records into target table by using tpump?
Hi Friends I have a sql question, We have the source data as below. 101 address1, address2, address3 and the output shoulb like below 101 address1 101 address2 101 address3 Required a SQL query for this output. Please let me know if you have any sql query for this. Thanks in advance. Hari M
Explain the meaning of Amp?
one table have input no name 10 rao 20 siva 30 srinu 10 rao i want to ouput like this way no name 20 siva 30 srinu 10 rao how it posible in only sql server query?not oracle?
What is meant by Teradata Gateway?
Please tell me a query to find the Primary key,Foreign key,primary Index,PPI for the Database?
Can you fastexport a field, which is primary key by putting equality on that key?