russko
вряд ли дело в вычисляемых полях (если мы об одном и том же говорим)
скорее дело в большом кол-ве подзапросов из второго запроса, типа вот таких (я уже не говорю о простых типа SUM())
,(select RESULT_SUMMA from NPC_SCHETA_OPL_NEOPL(NSz.ID,1,2,null,NSz.summa_v_valute_sch)) OPLACHENO_PROCENTOV
,(select min(Data_Opl) from NPC_Scheta_Oplata nso where nso.Schet_ID=nspz.Schet_ID ) DATA_OPL_FIRST
,(select case when max(Data_Opl)<>min(Data_Opl) then max(Data_Opl) end from NPC_Scheta_Oplata nso where nso.schet_ID=nspz.Schet_ID ) DATA_OPL_LAST
попробуйте их по одному "выключать" (напр. ,0.000 OPLACHENO_PROCENTOV ) и увидите, что же реально тормозит. а потом будет видно как ускорить - или индекс добавить, или получать в цикле, или даже хранить результаты в таблице
вряд ли дело в вычисляемых полях (если мы об одном и том же говорим)
скорее дело в большом кол-ве подзапросов из второго запроса, типа вот таких (я уже не говорю о простых типа SUM())
,(select RESULT_SUMMA from NPC_SCHETA_OPL_NEOPL(NSz.ID,1,2,null,NSz.summa_v_valute_sch)) OPLACHENO_PROCENTOV
,(select min(Data_Opl) from NPC_Scheta_Oplata nso where nso.Schet_ID=nspz.Schet_ID ) DATA_OPL_FIRST
,(select case when max(Data_Opl)<>min(Data_Opl) then max(Data_Opl) end from NPC_Scheta_Oplata nso where nso.schet_ID=nspz.Schet_ID ) DATA_OPL_LAST
попробуйте их по одному "выключать" (напр. ,0.000 OPLACHENO_PROCENTOV ) и увидите, что же реально тормозит. а потом будет видно как ускорить - или индекс добавить, или получать в цикле, или даже хранить результаты в таблице