Dear Basex team, We are facing an xquery performance issue. Please find the query in below and please suggest any clue to optimize query
let $subbrk := (collection("867509_Voice_DECEMBER-19_Billed_1")/SUBCUSTBRK) let $detailUsageTxn := $subbrk/DETAIL/TRANSACTION[@Usage = 'usage']
let $DistCallTypesAll := ($detailUsageTxn/SUB_SECTION/@Type) let $DistCallTypes := ( for $r in $DistCallTypesAll group by $ct := $r return $ct)
*//Here taking nearly 3 minutes*
let $allmonths := distinct-values($subbrk/Month) let $rowcnt := count($detailUsageTxn/SUB_SECTION) let $months := $allmonths[position() le 10000] let $opttype := 'NumVal' let $durop := 'hh:mm:ss' return ( if($DistCallTypes!='' ) then( for $month in $months return <R> <GRPBY>{ $month }</GRPBY>{ if($opttype = 'NumVal') then for $ct in $DistCallTypes
let $ctCnt := sum($detailUsageTxn/SUB_SECTION[data(@Type) = data($ct) and data(../../../Month) = $month]/@Calls) *//Here taking 4 to 5 minutes* return element { replace(concat('_',data($ct)),'(.|[|]|\|||-|^|$|?|*|+|{|}|(|)| |')', '_') } {xs:decimal($ctCnt)} else () }
</R>) else() )
Regards, Chandrasekhar