delete from tablex where start_date >= '20120101' and start_date < = '20120131'
i known optimization depends from some factors like index, the table size and so on, but this script initially was implemented in batch using the set rows ....
I've been said that executing the deletion directly (no batch) is faster than in batch, its true or false ? and why ?
Yes it runs faster as a one big batch than in smaller batches. But that's the whole point of doing it in small batches: to slow it down. You are minimizing blocking by doing it in small batches.