共用方式為


游標位置的重要性

每個光標都會使用臨時資源來保存其數據。 這些資源可以是記憶體、磁碟分頁檔案、暫存磁碟檔案,或甚至是資料庫中的暫存記憶體。 當這些資源位於客戶端電腦時,游標稱為 客戶端 游標。 當這些資源位於伺服器上時,游標稱為 伺服器端 游標。

Client-Side 游標

在 ADO 中,使用 adUseClient CursorLocationEnum 呼叫用戶端數據指標。 使用非索引鍵集用戶端數據指標時,伺服器會透過網路將整個結果集傳送至客戶端電腦。 用戶端電腦提供並管理游標和結果集所需的臨時資源。 用戶端應用程式可以瀏覽整個結果集,以判斷它所需的數據列。

靜態和鍵集驅動的客戶端游標如果包含過多的資料列,可能會對工作站造成顯著的負載。 雖然所有游標庫都能夠建置具有數千個資料列的游標,但那些用於提取此類大型資料列集的應用程式可能效能不佳。 當然,也有例外。 對於某些應用程式,大型客端游標可能非常適當,而且效能可能不會構成問題。

客戶端游標的一個明顯優點是快速回應。 將結果集下載到用戶端計算機之後,瀏覽數據列的速度非常快。 您的應用程式通常具有更好的可擴展性,若使用用戶端游標,因為游標的資源需求會分散於每個個別的用戶端,而不是集中在伺服器上。

Server-Side 游標

在 ADO 中,使用 adUseServer CursorLocationEnum 呼叫伺服器端數據指標。 使用伺服器端數據指標,伺服器會使用伺服器計算機所提供的資源來管理結果集。 伺服器端游標只會透過網路傳回要求的資料。 這種類型的游標有時可提供比客戶端游標更好的效能,特別是在網路流量過多成為問題的情況下。

不過,請務必指出伺服器端的游標至少會暫時耗用每個活動中用戶端的寶貴伺服器資源。 您必須妥善規劃,以確保您的伺服器硬體能夠管理所有由活躍客戶端請求的伺服器端游標。 此外,伺服器端數據指標可能會變慢,因為它只提供單一數據列存取 - 沒有可用的批次數據指標。

伺服器端游標在插入、更新或刪除記錄時很有用。 當使用伺服器端游標時,您可以在同一個連接上執行多個活動中的語句。