I have the need to optimize a piece of code. It updates a table, based on a detail table. The detail table (vpmod) contains 3*10^6 records, the base table (volcdet) contains 20 relevant records. Here's my code:
It essentailly tries to count the number of priceraises above and below a border value.
Does anyone have an idea how to decrease the processing time? I would think less code would make it faster. But.... ????
Cees Cappelle
Code:
DECLARE @plannummer VarChar(20) DECLARE @MaxPrijswijziging Float DECLARE @MinPrijswijziging Float SET @MaxPrijswijziging = 4.0 SET @MinPrijswijziging = 10.0 SET @plannummer = '20080219' UPDATE mcmain.volcdet SET vd_qbmaxed = (SELECT count(*) FROM mcmain.vpmod WHERE vm_updnmr = @plannummer AND vm_volc = vd_volcnmr AND vm_bprperc > @MaxPrijsWijziging) WHERE vd_upnmr = @plannummer UPDATE mcmain.volcdet SET vd_qbmined = (SELECT count(*) FROM mcmain.vpmod WHERE vm_updnmr = @plannummer AND vm_volc = vd_volcnmr AND vm_bprperc < @MinPrijsWijziging) WHERE vd_upnmr = @plannummer UPDATE mcmain.volcdet SET vd_qnmaxed = (SELECT count(*) FROM mcmain.vpmod WHERE vm_updnmr = @plannummer AND vm_volc = vd_volcnmr AND vm_nprperc > @MaxPrijsWijziging) WHERE vd_upnmr = @plannummer UPDATE mcmain.volcdet SET vd_qnmined = (SELECT count(*) FROM mcmain.vpmod WHERE vm_updnmr = @plannummer AND vm_volc = vd_volcnmr AND vm_nprperc < @MinPrijsWijziging) WHERE vd_upnmr = @plannummer
Does anyone have an idea how to decrease the processing time? I would think less code would make it faster. But.... ????
Cees Cappelle
Comment