In query plan, both TblLkTtreeScan and RowLkTtreeScan operation its mentioned as range scan. What is the actual difference between those?? When will we see TblLkTtreeScan/RowLkTtreeScan in Query plan and which is recommended among them?
Both mean that the table is being accessed via a Ttree (range) index. TblLk means the access will use table level locking while RowLk means it will use row level locking. In most cases indexed access is better than a serial scan. For maximum concurrency row level locking is best (typically for OLTP workloads). For complex query workloads (e.g. analytics) with no concurrent updates table level locking often gives better performance.