What is bulk-collect and any restrictions in bulk-collect ? what is the use of limit clause in bulk-collect ?
With bulk collect we can move all the resultant set in bulk to b processed in PL/SQL engine which kindles high efficiency but at the cost of memory ,thus the resultant set is moved in batches by giving how many records to be moved in one batch by specifying it in limit clause.
Actually bulk collect performance is very high,because when ever resource table having large amount of data to fetch data using cursors that is degrade performance of the application,to improve performance of the application then we are using bulk collect,limit is an optional clause using in cursor fetch statement with bulk collect clause.
Bulk collect reduces the context switching between the SQL and PL/SQL engines .. thereby increasing performance.. we can reduce the context switch to one but in case of very large data set. it's must that you use limit clause to manage the number of records to be moved in one context switch.