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)),'(\.|\[|\]|\\|\||\-|\^|\$|\?|\*|\+|\{|\}|\(|\)|
|&apos;)', '_') }
                                      {xs:decimal($ctCnt)}
                                     else ()
                                }

                     </R>)
            else()
      )



Regards,
Chandrasekhar

Reply via email to