sqlserver游標,sqlserver游標嵌套

sql server中的游標

使用游標(cursor)的一個主要的原因就是把集合操作轉(zhuǎn)換成單個記錄處理方式。用SQL語言從數(shù)據(jù)庫中檢索數(shù)據(jù)后,結(jié)果放在內(nèi)存的一塊區(qū)域中,且結(jié)果往往是一個含有多個記錄的集合。游標機制允許用戶在SQL

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序開發(fā)、集團企業(yè)網(wǎng)站建設(shè)等服務項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了青白江免費建站歡迎大家使用!

server內(nèi)逐行地訪問這些記錄,按照用戶自己的意愿來顯示和處理這些記錄。

sqlserver 游標用法

如果只是查詢ID=9的記錄這樣就行了

SELECT * FROM 表名 WHERE ID=9

滿意請采納。

SQLserver 大批量更新插入的時候游標怎么優(yōu)化

盡量避免使用游標,因為游標的效率較差,如果游標操作的數(shù)據(jù)超過1萬行,那么就應該考慮改寫。

使用基于游標的方法之前,應先尋找基于集的解決方案來解決問題,基于集的方法通常更有效。

最好的改進光標性能的技術(shù)就是:能避免時就避免使用游標

若有時無法避免使用游標,則可以用如下技巧來優(yōu)化游標的性能。

(1). 除非必要否則不要使用static/insensitive游標。打開static游標會造成所有的行都被拷貝到臨時表。這正是為什么它對變化不敏感的原因——它實際上是指向臨時數(shù)據(jù)庫表中的一個備份。很自然,結(jié)果集越大,聲明其上的static游標就會引起越多的臨時數(shù)據(jù)庫的資源爭奪問題。

(2). 除非必要否則不要使用keyset游標。和static游標一樣,打開keyset游標會創(chuàng)建臨時表。雖然這個表只包括基本表的一個關(guān)鍵字列(除非不存在唯一關(guān)鍵字),但是當處理大結(jié)果集時還是會相當大的。

(3). 當處理單向的只讀結(jié)果集時,使用fast_forward代替forward_only。使用fast_forward定義一個forward_only,則read_only游標具有一定的內(nèi)部性能優(yōu)化。

(4). 使用read_only關(guān)鍵字定義只讀游標。這樣可以防止意外的修改,并且讓服務器了解游標移動時不會修改行。

(5). 小心事務處理中通過游標進行的大量行修改。根據(jù)事務隔離級別,這些行在事務完成或回滾前會保持鎖定,這可能造成服務器上的資源爭奪。

(6). 小心動態(tài)光標的修改,尤其是建在非唯一聚集索引鍵的表上的游標,因為他們會造成“Halloween”問題——對同一行或同一行的重復的錯誤的修改。因為SQL Server在內(nèi)部會把某行的關(guān)鍵字修改成一個已經(jīng)存在的值,并強迫服務器追加下標,使它以后可以再結(jié)果集中移動。當從結(jié)果集的剩余項中存取時,又會遇到那一行,然后程序會重復,結(jié)果造成死循環(huán)。

(7). 對于大結(jié)果集要考慮使用異步游標,盡可能地把控制權(quán)交給調(diào)用者。當返回相當大的結(jié)果集到可移動的表格時,異步游標特別有用,因為它們允許應用程序幾乎馬上就可以顯示行

當前標題:sqlserver游標,sqlserver游標嵌套
網(wǎng)頁路徑:http://muchs.cn/article40/phecho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供小程序開發(fā)網(wǎng)站維護、定制開發(fā)、網(wǎng)站排名、品牌網(wǎng)站建設(shè)、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁設(shè)計公司