SQL Server技術問題之游標優缺點

2022-01-23 00:03:57 字數 1080 閱讀 2103

分類:

ms sql server 支援三種型別的游標:transact_sql 游標,api 伺服器游標和客戶游標。

(1) transact_sql 游標

transact_sql 游標是由declare cursor 語法定義、主要用在transact_sql 指令碼、儲存過程和觸發器中。transact_sql 游標主要用在伺服器上,由從客戶端傳送給伺服器的transact_sql 語句或是批處理、儲存過程、觸發器中的transact_sql 進行管理。transact_sql 游標不支援提取塊或多行。

(2) api 游標

api 游標支援在ole db, odbc 以及db_library 中使用游標函式,主要用在伺服器上。每一次客戶端應用程式呼叫api 游標函式,ms sql sever 的ole db 提供者、odbc驅動器或db_library 的動態鏈結庫(dll) 都會將這些客戶請求傳送給伺服器以對api游標進行處理。

(3) 客戶游標

客戶游標主要是當在客戶機上快取結果集時才使用。在客戶游標中,有乙個預設的結果集被用來在客戶機上快取整個結果集。客戶游標僅支援靜態游標而非動態游標。由於伺服器游標並不支援所有的transact-sql 語句或批處理,所以客戶游標常常僅被用作伺服器游標的輔助。因為在一般情況下,伺服器游標能支援絕大多數的游標操作。

由於api 游標和transact-sql 游標使用在伺服器端,所以被稱為伺服器游標,也被稱為後台游標,而客戶端游標被稱為前台游標。

優點:

1)允許程式對由查詢語句select返回的行集合中的每一行執行相同或不同的操作,而不是對整個行集合執行同乙個操作。

2)提供對基於游標位置的表中的行進行刪除和更新的能力。

3)游標實際上作為面向集合的資料庫管理系統(rdbms)和面向行的程式設計之間的橋梁,使這兩種處理方式通過游標溝通起來。

缺點:

處理大資料量時,效率低下,占用記憶體大;

一般來說,能使用其他方式處理資料時,最好不要使用游標,除非是當你使用while迴圈,子查詢,臨時表,表變數,自建函式或其他方式都無法處理某種操作的時候,再考慮使用游標。

容器技術問題

1.為什麼會出現容器技術?容器是針對以下問題的解決方案 在切換執行環境後,如何保證軟體能夠可靠地執行?這種切換可能是從程式設計師的膝上型電腦到測試環境 從某個測試階段部署到線上,也可能是從資料中心的某台物理機到私有雲或者公有雲上的某台虛擬機器。2.容器是什麼?3.容器技術的未來發展趨勢?截至今天,業...

非技術問題彙總

1 您在前一家公司的離職原因是什麼?2 講一件你印象最深的一件事情 3 介紹乙個你影響最深的專案 4 介紹你最熱愛最擅長的專業領域 5 公司實習最大的收穫是什麼 6 與上級意見不一致時,你將怎麼辦 7 自己的優點和缺點是什麼?並舉例說明?8 你的學習方法是什麼樣的?實習過程中如何學習?實習專案中遇到...

Flask技術問題彙總

好處 flask封裝了 c端發起 request 物件,這樣就可以使用上下文臨時把某些物件變為全域性可訪問 如果不封裝,檢視函式就要傳入 request 物件,這時候檢視函式要是還要訪問其他物件,會把檢視函式弄得一團糟,壞處 增加了理解的難度。雖然用起來很爽。但是request是怎麼來的,傳遞過程,...