Detectar repeticiones entre dos tablas
Lo primero de todo, quería saludar a todo el mundo, ya que soy nuevo.
Tengo un problema con una consulta que no termina de salirme:
Tengo dos tablas idénticas , T1 y T2, con los mismos campos (campos x, y de tipo double, campo z de tipo int. No hay claves primarias). T1 contiene n filas, y T2 m filas, siendo m > n. Hay n filas de T2 que son las mismas que las n filas de T1. El resto de filas de T2 (m - n filas), son las que me interesan.
Quiero una query que me permita conseguir esas m - n filas no comunes. Es decir, las filas en las que T2 se diferencia de T1. He de decir que, a pesar de no haber claves primarias (no es culpa mía, y no hay posibilidad de añadirlas), no hay dos filas repetidas (es decir, con x, y, z iguales) en ningún caso.
He probado con una query como esta:
select *
from T2 t2
where concat(t2.x, t2.y, t2.z) not in (select concat(x,y,z) from T1)
Es la única forma en la que se me ocurrio que se podía ver si una fila de T2 estaba o no en T1. El problema es que son tablas moderadamente grandes (~100mil registros), y una consulta como esa tarda demasiado, ya que ha de concatenar datos (que es algo que seguramente consuma mucho tiempo) y además, para cada una de las ~100mil filas de T2, compararlas con todas las filas de T1.
¿Hay alguna forma de hacer esto que sea razonable en tiempo?
Muchas gracias por anticipado, un saludo