Error en optimizacion | SQL Server Performance Forums

SQL Server Performance Forum – Threads Archive

Error en optimizacion

Buenas, la siguiente consulta no puede ser sometida a una optimizacion de indices, porque?, ah, estoy usando una funcion dado que de un producto tengo varias versiones de consumos, eso que dicen hago un consumo y si cambia la tela u otro medio, puede variar mi consumo, entonces genero la otra version y como no se que numero es la ultima, genero la funcion para poder relacionarlo con ese dato, y ver sus consumos, en color pregunto que si no tengo establecido el color (0000=sin color) entonces no iguala, como ven uso case y queria ver a que se debe todo el problema que se me ha presentado, bueno la consulta no demora mucho, unos 10 a 15 segundos pero tengo curiosidad por saber porque no puedo someterlo al optimizador de indices o si me comprenden, hay alguna manera de hacer lo mismo de otra manera, la tabla protocoloresta, es un detalle y como dije de un estilo tengo varias versiones, pero solo necesito la ultima para jalar los consumos. Carga de trabajo no tiene sucesos o consultas que se puedan optimizar en la base de datos actual. bla bla bla Muchas gracias, por el tiempo dado, cualquier consulta o script que requieran para que puedan analizarlo, me avisan y les preparo uno, es muy pesada la informacion. SELECT cabe.pedi_nume, pedi_ordetrab, Po_Nume, deta.Esti_codi, Esti.Esti_desc, Cabe.Cont_codi, Contac.Cont_Nomb
, deta.Desti_codi, case when Desti.cont_NombCome = ” or Desti.cont_NombCome = null then Desti.Cont_Nomb else Desti.cont_NombCome end Desti_Nomb
, deta.Surt_codi, SurtDeta.prendes_codi, deta.colo_codi, PrenTipo.Tipo_Codi, PrenTipo.Tipo_Desc,
” tipotela, pedi_cantpedi, protota.Cant Consumo,
isnull(protota.Cant,0) * pedi_cantpedi kilo, pedi_fechprod,
protota.Ta_corr, tatipo.tipo_desc, tatitu.titu_desc
FROM PEDIDO Cabe
INNER JOIN PedidoDetalle Deta
ON Cabe.Pedi_Nume = Deta.Pedi_Nume
inner join bdcomun..Estilos Esti on Esti.esti_codi = Deta.esti_codi
inner join bdcomun..Contactos Contac on Contac.Cont_codi = Cabe.Cont_codi
inner join bdcomun..Contactos Desti on Desti.Cont_codi = Deta.Desti_codi
left join bdcomun..EstiloSurt Surt on Surt.Esti_codi= Deta.Esti_codi
and Surt.Surt_codi = Deta.Surt_codi
left join bdcomun..EstiloSurtDeta SurtDeta on SurtDeta.Esti_codi= Deta.Esti_codi
and SurtDeta.Surt_codi = Deta.Surt_codi
left join bdcomun..PrendasDesarrollo Desa on SurtDeta.Prendes_codi = desa.PrenDes_codi
left join bdcomun..PrendaTipo PrenTipo on PrenTipo.Tipo_Codi = desa.Tipo_Codi
left join bdcomun..protocoloresta protota on protota.prot_codi = dbo.F_Estilo_UltProto(deta.esti_codi, deta.surt_codi)
and protota.Esti_codi = deta.esti_codi and protota.Surt_codi = deta.surt_codi
and case when deta.colo_codi = ‘0000’ then ‘NCOL’ ELSE deta.colo_codi END = case when surt.surt_color = 2 then ‘9999’ else protota.colo_codi end
and protota.prendes_codi = SurtDeta.prendes_codi
left join bdcomun..telaacabada ta on ta.ta_corr = protota.ta_corr
left join bdcomun..telatipo tatipo on tatipo.tipo_codi = ta.tipo_codi
left join bdcomun..Titulo TaTitu on tatitu.titu_codi = ta.titu_codi
where pedi_fechprod >= ’01/01/05′ and pedi_fechprod <= ’01/06/05′
group by cabe.pedi_nume, pedi_ordetrab, Po_Nume, deta.Esti_codi, Esti.Esti_desc, Cabe.Cont_codi, Contac.Cont_Nomb
, deta.Desti_codi, Desti.cont_nomb, Desti.cont_nombcome
, deta.Surt_codi, SurtDeta.prendes_codi, PrenTipo.Tipo_Codi, PrenTipo.Tipo_Desc,
pedi_cantpedi, pedi_fechprod, protota.Ta_corr
,protota.cant, tatipo.tipo_desc, tatitu.titu_desc, deta.colo_codi
Podrías describir el error que ocurre cuando tratas de optimizarla? Luis Martin
Moderator
SQL-Server-Performance.com One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important
Bertrand Russell
All postings are provided “AS IS” with no warranties for accuracy.
Carga de trabajo no tiene sucesos o consultas que se puedan optimizar en la base de datos actual. Compruebe que la traza contiene sucesos validos o que la secuencia de comandos sql contiene consultas validas y que esta optimizando en la base de datos. Ese es el mensaje de error, no hay numero que identifique.
Podrías copiar el query en el Analizador de Consultas, elegir la base de datos en la que se encuentra la tablas Pedido y Pedidodetalle y obtener el plan de ejecución?. Si el plan no muestra errores, entonces ejecuta desde allí el optimizado. Luis Martin
Moderator
SQL-Server-Performance.com One of the symptoms of an approaching nervous breakdown is the belief that one’s work is terribly important
Bertrand Russell
All postings are provided “AS IS” with no warranties for accuracy.
No, sale el error, pero el problema ya lo pase en la otra consulta que hice de hacer select de otro select, y si me deja usarlo en el optimizador, revisare las relaciones que hago entre las diferentes tablas que he utilizado, creo que por ahi estoy haciendo una anidacion inadecuada.
]]>