getnext和getbulk的區(qū)別 OracleBULKCOLLECT批量取數(shù)據(jù)解決方法?
OracleBULKCOLLECT批量取數(shù)據(jù)解決方法?通常我們通過獲取一些數(shù)據(jù)來獲取游標(biāo)數(shù)據(jù)。當(dāng)游標(biāo)中的記錄數(shù)較少時,這無關(guān)緊要。然而,自從oracle8i以來,Oracle提供了fetchbulk集
OracleBULKCOLLECT批量取數(shù)據(jù)解決方法?
通常我們通過獲取一些數(shù)據(jù)來獲取游標(biāo)數(shù)據(jù)。當(dāng)游標(biāo)中的記錄數(shù)較少時,這無關(guān)緊要。然而,自從oracle8i以來,Oracle提供了fetchbulk集合來批量獲取游標(biāo)中的數(shù)據(jù)。它可以提高讀取光標(biāo)中大量數(shù)據(jù)的效率。就像SNMP協(xié)議一樣,V2版本將get bulk PDU添加到V1版本,它還用于更高效地批量獲取設(shè)備上的節(jié)點值。fetch bulk collect into的格式是:fetch some cursor collect into col1,col2 limit xxx。col1和col2是聲明的集合類型變量。XXX是每次獲取的數(shù)據(jù)塊(記錄數(shù))的大小,相當(dāng)于緩沖區(qū)的大小。不能指定限制XXX的大小。下面是一個實例來說明它的用法,并將其與逐個獲取記錄的獲取執(zhí)行效率進(jìn)行比較。測試環(huán)境為Oracle 10g 10.2.1.0,查詢contact表SR,contacts中有1802983條記錄,返回的記錄數(shù)受游標(biāo)rownum限制。