區塊資料指標
許多應用程式會花費大量時間在網路上傳送資料。 這些時間實際上只有一部分用於在網路上傳送資料,另一部分則是耗費在網路的額外負荷上,例如驅動程式為了要求資料列所發出的呼叫。 如果應用程式能有效率地使用區塊 (或 fat)、游標,就能一次傳回多個資料列,減少在額外負荷上花費的時間。
所有應用程式都可以選擇使用區塊游標。 在一次只能擷取一個資料列的資料來源中,區塊游標必須在驅動程式中模擬。 這可以藉由執行多次單一資料列擷取來完成。 雖然這種作法難以提供任何效能提升,但卻能為應用程式創造機會。 隨著 DBMS 以原生方式實現原生區塊游標,再加上與這些 DBMS 相關聯的驅動程式將區塊游標公開,這類應用程式效能將得以提升。
利用區塊游標在單一擷取中傳回的資料列稱為「資料列集」。 要注意的是,請不要將資料列集與結果集混為一談。 結果集會保留在資料來源上,而資料列集則會保留在應用程式緩衝區中。 結果集是固定的,而資料列集則不是。每次擷取一組新的資料列時,資料列集的位置和內容都會改變。 就像單一資料列指標 (例如傳統 SQL 順向資料指標) 指向一個目前的資料列,區塊游標會指向資料列集 (可視為「目前的資料列」)。
若要在擷取多個資料列時對單一資料列執行作業,應用程式必須先指出哪一個資料列是目前的資料列。 呼叫 SQLGetData 和定點更新與刪除陳述式都需要目前資料列。 當區塊游標第一次傳回資料列集時,目前資料列是資料列集中的第一個資料列。 若要變更目前資料列,應用程式會呼叫 SQLSetPos 或 SQLBulkOperations (透過書籤更新)。 下圖顯示結果集、資料列集、目前資料列、資料列集指標和區塊游標的關聯性。 如需詳細資訊,請參閱本節稍後討論的使用區塊游標、定點更新和刪除陳述式和透過 SQLSetPos 更新資料。
資料指標是否為區塊資料指標,與它是否可捲動無關。 例如,在報表應用程式中,大部分的工作都在於擷取和列印資料列。 因此,這類應用程式在透過順向區塊游標時運作速度最快。 它可以使用順向資料指標來避免可捲動資料指標的費用,並使用區塊游標來減少網路流量。
此章節包含下列主題。