Je suis en train de réaliser la andsession de requête suivante obtient avorté après ~ 1,5 heures de traitement:Teradata: séance interrompue en raison de la requête unoptimal
create volatile table test2 as
(
select
a.*,
b.client_dk
from test1 as a
inner join payroll_clients as b
on a.payroll_agrmnt_id = b.lbt_lst_payroll_agrmnt_id
)
WITH DATA
ON
COMMIT PRESERVE ROWS;
Table test1
contient ~ 1500 lignes, payroll_agrmnt_id
est unique
.
Table payroll_clients
contient ~ 151 millions lignes (oui beaucoup), client_dk
est unique
Qu'est-ce que je fais mal?
p.s .: ajouté "table de salon" pour les deux tables:
show table payroll_clients;
CREATE SET VOLATILE TABLE "PAVLENKO-GA".payroll_clients ,NO FALLBACK ,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO,
LOG
(
client_dk BIGINT,
lbt_lst_payroll_agrmnt_id BIGINT)
PRIMARY INDEX (client_dk ,lbt_lst_payroll_agrmnt_id)
ON COMMIT PRESERVE ROWS;
show table test1;
CREATE SET VOLATILE TABLE "PAVLENKO-GA".test1 ,NO FALLBACK ,
CHECKSUM = DEFAULT,
DEFAULT MERGEBLOCKRATIO,
LOG
(
INN FLOAT,
DOG_NUM FLOAT,
payroll_agrmnt_id BIGINT)
PRIMARY INDEX (payroll_agrmnt_id)
ON COMMIT PRESERVE ROWS;
pouvez-vous s'il vous plaît élaborer plus sur les Datamodels (DDL) pour les deux tables –
Savez-vous * pourquoi * il a été avorté? Ce n'est probablement pas à cause de trop de Spool/CPU/IO, mais en raison d'un mauvais Index Primaire de la table cible, vous ne l'avez pas spécifié et donc par défaut 'PAVLENKO-GA.a.INN'. Je suppose que cette colonne entraîne une très mauvaise distribution et que votre table est s SET table = Duplicate Row checks. Essayez un PI sur 'client_dk'. – dnoeth
Bonjour Aritra, ajouté dans le message original, s'il vous plaît jeter un oeil –