Subquerie
Tengo un sentencia SQL a Ejecutar en SQL Server 2000 que contiene una subconsulta simple del estilo SELECT DISTINCT t1. Campo1, t1.Campo2 FROM Demanda t1, DemQuejoso t2 WHERE t1.cveasunto=t2. Cveasunto AND t2. Quejoso IN (SELECT Quejoso FROM DemQuejoso WHERE NumRegistro=200200260), como veras es muy sencilla y funciona correctamente con pocos registros (Demanda 8500 y Quejoso 11500 regs.), pero cuando la probé con al base en producción con la tabla de Demanda alrededor de 95,000 regs. Y la de Quejoso contiene 134,000 regs. La consulta simplemente no responde, probé colocanto en una tabla temporal el resultado del SELECT externo y aplicar la misma sentencia solamente cambiando la Tabla Demanda por la Temporal, pero aún así espere mas de 20 minutos y no repondió (aún que en la temporal solamente contenía 516 regs.), de todos modos si me hubiera respondido SQL Server es inservible así, el tiempo de respuesta es muy alto para una validación que se hace en línea al momento de registrar una Demanda.
¿A qué crees que se deba?, digo, uno de ellos es la cantidad de registros pero aún así no me parece normal cuando apliqué la segunda alternativa. Y digamos que esto es simple porque la sentencia SQL se construye dinámicamente y puede estar relacionada la tabla demanda (master) a 'n' tablas de detalle (quejoso, autoridad, tercero perjudicado, etc) y donde cada una de detalle sería una subconsulta dentro del mismo SELECT.
¿A qué crees que se deba?, digo, uno de ellos es la cantidad de registros pero aún así no me parece normal cuando apliqué la segunda alternativa. Y digamos que esto es simple porque la sentencia SQL se construye dinámicamente y puede estar relacionada la tabla demanda (master) a 'n' tablas de detalle (quejoso, autoridad, tercero perjudicado, etc) y donde cada una de detalle sería una subconsulta dentro del mismo SELECT.
2 Respuestas
Respuesta de crrono
1
Respuesta de pgllillo
1