Vistas con UNION ALL son lentas.

tema enviado por Alejo en SQL
tema iniciado el 14/06/2007
Hola, es mi primer post aqui y queria hacer una consulta para sacarme una duda existencial con SQL, detallo: El problema surgio ante la demanda de fusionar de manera transparente la informacion de dos DB diferentes pero de un mismo sql-engine (en este caso sqlite3 pero podria ser otro) Entonces la manera de juntar dos DB en sqlite es mas que facil pero me encuetro con que quiero que tablas iguales fusionen su informacion de manera rapida, para ello creo una vista que haga referencia a esta union donde las tablas las uno con un simple UNION ALL. CREATE TEMP VIEW vw_CLIENTES AS SELECT * FROM DB1.CLIENTES UNION ALL SELECT * FROM DB2.CLIENTES ahora bien... si yo ejecuto un simple: SELECT * FROM DB1.CLIENTES UNION ALL SELECT * FROM DB2.CLIENTES esto va bien rapido y sin problemas, pero asi suelto no me sirve asi que debo ingresarlo en una vista para usarlo como una tabla... PERO al crear la vista y USARLA esta vista vw_CLIENTES es demaciado LENTA :( por que es el problema? sera que no se hace uso de los indices propios de cada tabla? tendra que ver con indices la cosa o que podra ser? ACLARO que las tablas CLIENTES son GRANDES como 2 millones de registros c/u. Agradezco cualquiero comentario. gracias. Alejo.