ADO分頁技巧有哪些

本篇內(nèi)容主要講解“ADO分頁技巧有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實(shí)用性強(qiáng)。下面就讓小編來帶大家學(xué)習(xí)“ADO分頁技巧有哪些”吧!

創(chuàng)新互聯(lián)專注于企業(yè)營銷型網(wǎng)站、網(wǎng)站重做改版、新余網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、H5頁面制作成都做商城網(wǎng)站、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站建設(shè)公司、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為新余等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。

大家都說:原來的ADO分頁方法中的游標(biāo)效率低下,而且容易引起鎖,甚至導(dǎo)致死機(jī)。我想問:這個(gè)游標(biāo)到底是存在于客戶端、WEB服務(wù)器還是數(shù)據(jù)庫?他們是不是一回事?是否根據(jù)ADO可以讓他們都存在游標(biāo)?到底哪種的游標(biāo)最不好?

還有一個(gè)問題:
我好不容易找到了一個(gè)TOP 結(jié)合max的分頁方法,但今天我發(fā)現(xiàn),我搜索我的1000萬的數(shù)據(jù)庫得到25萬條數(shù)據(jù),甚至包括like搜索,但用最原始的ADO方法,發(fā)現(xiàn)速度也非常的快?。?!比TOP等方法慢不到哪里去?。繛槭裁催@么快呢?

在某一時(shí)刻只有一個(gè)DataReader能夠打開。。在ADO分頁中,如果你打開一個(gè)連接并請(qǐng)求兩個(gè)使用只向前的只讀游標(biāo)的記錄集,ADO隱性地為游標(biāo)的生命周期的數(shù)據(jù)存儲(chǔ)打開第個(gè)不在連接池中的連接,接著隱性地關(guān)閉它。在ADO.NET中,如果你想在同一個(gè)數(shù)據(jù)存儲(chǔ)上同時(shí)打開兩個(gè)DataReader,你必須明確地建立兩個(gè)連接,每個(gè)DataReader一個(gè)。通過這種方法ADO.NET給了你對(duì)連接池使用的更多控制。 

默認(rèn)情況下,DataReader在每個(gè)Read方法中把整個(gè)行載入內(nèi)存中。這允許你隨機(jī)訪問當(dāng)前行的任意列。如果隨機(jī)訪問是不必要的,為了提高性能,把CommandBehavior.SequentialAccess傳遞給ExecuteReader調(diào)用。這改變了DataReader的默認(rèn)行為,只在需要時(shí)才把數(shù)據(jù)載入內(nèi)存。ADO分頁注意CommandBehavior.SequentialAccess要求你按次序訪問返回的列。ADO分頁也就是,一旦你讀過了返回的某個(gè)列,就不能再次讀取它的值了。 

如果你結(jié)束了從DataReader中讀取數(shù)據(jù),但是仍然有大量的未讀取的結(jié)果等待,那么調(diào)用Command的Cancel比調(diào)用DataReader 的Close好。調(diào)用DataReader 的Close引起它檢索等待的結(jié)果并且先清空流后關(guān)閉游標(biāo)。調(diào)用Command的 Cancel刪除服務(wù)器上的結(jié)果,因此當(dāng)DataReader關(guān)閉時(shí),它不需要再讀取結(jié)果。ADO分頁如果你從Command返回輸出參數(shù),則調(diào)用Cancel刪除它們。如果你要讀取任何輸出參數(shù),不要調(diào)用Command 的Cancel;***調(diào)用DataReader的 Close。 

當(dāng)使用DataReader檢索二進(jìn)制大對(duì)象時(shí),必須給ExecuteReader方法調(diào)用傳遞CommandBehavior.SequentialAccess。因?yàn)镈ataReader的默認(rèn)行為是在每個(gè)Read中把整行載入內(nèi)存中,但是由于BLOB可能很大,結(jié)果可能是一個(gè)BLOB對(duì)象使用大量的內(nèi)存。SequentialAccess把DataReader的行為設(shè)置為只載入必要的數(shù)據(jù),ADO分頁接著你能使用GetBytes或者GetChars控制每次載入多少數(shù)據(jù)。 

記住使用SequentialAccess時(shí),ADO分頁你不能無序地訪問DataReader返回的不同字段。也就是說,如果查詢返回三個(gè)列,第三個(gè)是BLOB,并且你希望訪問前兩個(gè)列的數(shù)據(jù),你必須先訪問***個(gè)列,接著在訪問BLOB數(shù)據(jù)前訪問第二個(gè)列。這是因?yàn)楝F(xiàn)在數(shù)據(jù)是按次序返回的,在DataReader讀過它后不能再次訪問。 

到此,相信大家對(duì)“ADO分頁技巧有哪些”有了更深的了解,不妨來實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

新聞標(biāo)題:ADO分頁技巧有哪些
文章地址:http://muchs.cn/article22/ihgjcc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制網(wǎng)站、品牌網(wǎng)站建設(shè)網(wǎng)站策劃、做網(wǎng)站App開發(fā)、網(wǎng)站營銷

廣告

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

搜索引擎優(yōu)化