Hola a todos,
Tengo la siguiente consulta SQL:
SELECT CDRId FROM Cdr
WHERE cdrid not in (select cdrid from QueryQueue) AND
cdrid not in (select cdrid from QueryBuffer)
ORDER BY CDRId DESC
Al ejecutarla no me retorna ningun resultado pero, si tomo un registro
determinado de la tabla Cdr (por ej CDRId=875372 ) y lo busco en las tablas
de las subconsultas:
select cdrid from QueryQueue where CdrID = 875372
select cdrid from QueryBuffer where CdrId = 875372
No obtengo registros para ninguna tabla, por lo cual la primera consulta
deberia retornar un registro de un campo cobn el valor 875372.
Algo que noté es que si a la consulta principal le comento la linea de la
subconsulta a QueryBuffer
SELECT CDRId FROM Cdr
WHERE cdrid not in (select cdrid from QueryQueue) AND
--cdrid not in (select cdrid from QueryBuffer)
ORDER BY CDRId DESC
Retorna valores (todos las filas de Cdr no existentes en QueryQueue), algo
no relevante, peero si hago lo lo mismo con la la subconsulta de la tabla
SELECT CDRId FROM Cdr
WHERE /*cdrid not in (select cdrid from QueryQueue) AND*/
cdrid not in (select cdrid from QueryBuffer)
ORDER BY CDRId DESC
No me retorna ningun valor, raro no?, la consultas parecen muy sencillas
como para que haya algun pifie, todavia estoy buscando donde me estoy
equivocado.
Como detalle puedo aportar que los campos de CdrId en (QueryQueue y en
QueryBuffer) tienen indices non-clustered.
Respecto a esto la unica particularidad que encontre en este tiempo, es que
al ejecutar un plan de mantenimiento vi como error el log, que el indice
non-clustered para el campo CdrId en QueryBuffer (casualidad?) no puede ser
reorganizado porque el bloqueo a nivel de pagina esta deshabilitado, para lo
cual, sin estudiar demasiado, procedí a ejecutar:
EXEC sp_indexoption N'QueryBuffer.IX_CDRID',
N'disallowpagelocks', false;
Para que la reorganización se pudiera ejecutar sin problema. Ahora me
encuentro con esto, espero estar equiovocandome en las consultas.
Gracias a todos
Diego Buceta
--
Diego Buceta
[EMAIL PROTECTED]