Limit the number of results but show how much would be returned
Are you sure you even need the left join to get a good count?
Are you using values from #rLog in the distinct?
And I would go with , distinct not +   

this line is different  

ON dc.[hashUFI] = #rLog.[hashUFI]


it might help

SELECT COUNT( DISTINCT [field 1] + [field n] )
  FROM #tempDC dc WITH (NOLOCK)
  JOIN #tempUID u WITH (NOLOCK) 
        ON dc.[hashUFI] = u.[hashUFI] 
       AND dc.iId IN ( '', u.iId ) 
       AND dc.rangeStart &lt;= dc.rangeEnd AND u.rangeStart &lt;= u.rangeEnd 
       AND u.rangeStart &lt;= dc.rangeEnd AND u.rangeEnd &gt;= dc.rangeStart
  -- try without the left join and see if the number is different
  LEFT JOIN #rLog 
        ON dc.[hashUFI] = #rLog.[hashUFI]
       AND dc.docId     = #rLog.docId 
       AND #rlog.iId IN ( '',  u.iId )