亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數(shù)據(jù)庫 > Access > 正文

數(shù)據(jù)庫應(yīng)用程序需注意的問題

2024-09-07 19:05:40
字體:
供稿:網(wǎng)友

總的來說,提高應(yīng)用程序性能的最好的方法是發(fā)現(xiàn)應(yīng)用的瓶徑之所在,和數(shù)據(jù)庫進行交互的性能無疑是決定應(yīng)用程序性能的重要環(huán)節(jié)之一。因為ADO是當(dāng)前最新的基于組件的數(shù)據(jù)庫編程的接口,這里我們主要討論用ADO編程所需要注意的問題,因為ADO是一個和編程語言無關(guān)的COM組件系統(tǒng),所以這里討論的要點適用于所有的編程語言和編程環(huán)境,比如:VB、VBScript、VC、Java等等。

顯式的定義對象變量的類型:

實際上,這條準(zhǔn)則不僅適用于ADO編程,也適用于其他的COM對象相關(guān)的編程,因為如果一開始就定義變量類型的話,編譯器在編譯的時候就可以知道變量的類型,編譯器實際上就采用vtable偏移的方式來得到具體的COM對象包含的方法的地址(這一點和C++中的虛函數(shù)的地址的獲取類似),但如果一開始不指定變量類型的話,比如簡單的采用如下的語句:

DIM myCon as Object

或者是

DIM myCon

那么編譯器在編譯的時候就不能得到變量的類型,而只能在運行的時候動態(tài)的得到方法的信息(通過使用接口IDispatch的方法Invoke來實現(xiàn)的),這樣為了得到方法的地址和相關(guān)的變量情況就需要在內(nèi)部進行兩次調(diào)用,無疑就使速度降低。

當(dāng)瀏覽記錄的時候,綁定列到具體的字段對象上去

這個意思就是說在一開始的時候我們就建立對字段對象的引用,避免在每次得到記錄的時候需要在Rcordset::Fields中進行查找而增加系統(tǒng)的開銷。

比如可以采用如下的示例代碼形式:

以下為引用的內(nèi)容:

  Private Sub TblBrowse_Click()

   Dim fld1 As ADODB.Field

   Dim fld2 As ADODB.Field

   Dim rs As ADODB.Recordset

   set rs=g_cn.execute(...) g_cn為全局adodb.connection對象

   Set fld1 = rs.Fields("id") 數(shù)據(jù)表的字段

   Set fld2 = rs.Fields("name") 數(shù)據(jù)表的字段
   If rs.BOF = False Then

    While rs.BOF = False

     Debug.Print fld1.Value

     Debug.Print fld2.Value

     rs.MoveNext

    Wend

   End If

   rs.Close

  End Sub
 


盡量采用SQL語句和存儲過程進行數(shù)據(jù)更新

盡管采用Recordset對象來更新數(shù)據(jù)是非常方便的,但是它的開銷也更大,所以如果可能的話,就要采用SQL語句來更新數(shù)據(jù)。使用存儲過程而不是單一的SQL語句來獲取信息。因為存儲過程是在服務(wù)器端執(zhí)行的,只把結(jié)果返回到客戶端,這樣一方面可以降低網(wǎng)絡(luò)進行數(shù)據(jù)交互的開銷,另一方面使系統(tǒng)更加容易維護,并且保持?jǐn)?shù)據(jù)的一致性。而如果使用recordset來得到結(jié)果的話,通過數(shù)據(jù)源對象返回的查詢集不僅包含了數(shù)據(jù),而且也包含了元數(shù)據(jù)(metadata),在有些時候元數(shù)據(jù)可能比數(shù)據(jù)本身還要大,這樣系統(tǒng)的開銷無疑也增加了不少。

如果必須要使用游標(biāo)的話,最好使用集合的方法對單條的SELECT語句進行操作

Recordset::get_Collect和Recordset::put_Collect方法是Recordset 對象的快捷方式,可以使你快速的得到一個字段的值而不需要獲得關(guān)于一個字段的引用??梢詤⒖既缦碌氖纠a:

以下為引用的內(nèi)容:

  Sub Collect()

   Dim rs As New Recordset

   rs.ActiveConnection = "…"

   rs.Source = "一條SQL查詢語句"

   rs.Open

   Debug.Print rs.Collect(0), rs.Collect(1), rs.Collect(2)

   Debug.Print rs!au_id, rs!au_fname, rs!au_lname

  End Sub
 


只查詢你所需要的數(shù)據(jù)

盡管很多開發(fā)人員都習(xí)慣采用"SELECT * FROM TBL"的模式進行查詢,但是為了提高系統(tǒng)的效率,如果你只需要其中某幾個字段的值的話,最好把這幾個字段直接寫出來,同時需要限定返回記錄集的范圍(通過WHERE子句進行限定)

正確選擇游標(biāo)的位置、類型和鎖方式

如果你只需要按順序讀取記錄并且不需要滾動和更新記錄的話,使用服務(wù)器端游標(biāo)(adUseServer)、僅向前游標(biāo)(adOpenForwardOnly)和讀鎖(adLockReadOnly)可以使你獲得最好的性能。如果你需要滾動記錄的話,采用客戶端游標(biāo)(adUseServer)會比采用服務(wù)器端游標(biāo)所得到的性能要好,ADO系統(tǒng)默認是采用服務(wù)器端游標(biāo)類型的。當(dāng)然如果數(shù)據(jù)集合相當(dāng)大的話,采用服務(wù)器端游標(biāo)的性能會好一些。同時需要注意的話,如果采用客戶端游標(biāo)的話,最好只采用讀加鎖(adLockReadOnly)的鎖類型,因為如果你需要更新數(shù)據(jù)的話,客戶端游標(biāo)引擎需要得到額外的信息(元數(shù)據(jù)),而這個信息的獲取是非常昂貴的。

調(diào)整記錄集對象(Recordset)CacheSize的屬性

ADO使用記錄集對象的CacheSize的屬性來決定提取和緩存的記錄的數(shù)目,當(dāng)你在緩存的范圍內(nèi)瀏覽數(shù)據(jù)的話,ADO就只從緩存中提取數(shù)據(jù)。當(dāng)你要瀏覽的數(shù)據(jù)超出緩存的范圍的時候,ADO就釋放緩存,提取下一些記錄(提取的數(shù)目為CacheSize的大?。?。你必須根據(jù)你具體的應(yīng)用程序的情況來設(shè)定CacheSize的大小保證你得到最好的性能。

自己定義command對象的參數(shù)

在許多數(shù)據(jù)源中,得到參數(shù)信息和執(zhí)行命令的代價幾乎是一樣的,所以如果可能的話,你要自己在程序中定義好command參數(shù)(也就是說要定義好參數(shù)的名稱、類型和方向信息),而避免從數(shù)據(jù)提供者(Provider)那里獲取信息.

使用原始的OLE DB提供者

MDAC對許多數(shù)據(jù)源提供了原始的數(shù)據(jù)提供者,比如SQL Server,Oracle和ACCESS數(shù)據(jù)庫,這樣你不需要再通過ODBC來獲取數(shù)據(jù)(也就是說不需要再通過ODBC驅(qū)動這一層),這樣的好處是你能更快的得到數(shù)據(jù),并且降低磁盤和內(nèi)存的開銷。

如果使用客戶端游標(biāo)的話,斷開connection連接

ADO有一個特征是當(dāng)使用客戶端游標(biāo)操作Recordset記錄集的時候,不需要和服務(wù)器進行聯(lián)系。你可以充分利用這個特征降低服務(wù)器端的開銷(服務(wù)器就不需要維護這些連接了),當(dāng)你操作完記錄集需要更新的話,可以重新和數(shù)據(jù)庫進行連接來更新數(shù)據(jù)。為了創(chuàng)建一個可以斷開連接的記錄集,你同時也需要使用靜態(tài)游標(biāo)(adOpenStatic)和批處理的加鎖模式(adLockBatchOptimistic)。下面的示例是用VC寫的:

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
久久久久久久久久久久久久免费看| 亚洲一区视频在线观看视频| 欧美高清视频在线| 直接看的黄色网址| 99精品在免费线中文字幕网站一区| 久久一本综合| 无码人妻精品一区二区蜜桃网站| 久久精品欧美日韩| 久久网中文字幕| 日韩精品一区二区三区四区视频| 中文字幕中文字幕99| 亚洲国语精品自产拍在线观看| 日韩欧美国产成人一区二区| 国产视频一区在线| 天天综合网在线| 高清视频一区二区三区四区| 国产精品久久久久久在线| 午夜片欧美伦| 韩国av电影免费观看| 欧美一区二视频在线免费观看| 欧美国产日韩在线观看成人| 国产精品久久久久久9999| 成人午夜av影视| 午夜激情视频在线播放| 亚洲一区二区av在线| 九九久久久2| 性xxxfllreexxx少妇| 欧美成人精品高清在线播放| 精品一区二区三区高清免费不卡| 国产精久久久久久| 精品国产乱码久久久久夜深人妻| 人人澡人人添人人爽一区二区| 日本免费一区二区视频| 欧美成人免费在线视频| 色综合久久天天综线观看| 欧美一级淫片播放口| 日韩成人精品在线| 国产永久在线观看| 亚洲ⅴ国产v天堂a无码二区| 成人一区二区三区四区| 欧美日韩另类丝袜其他| 欧美一级中文字幕| www99avcom| 国产人伦精品一区二区| 欧美丝袜丝交足nylons172| 日韩码欧中文字| 国产精品美女www爽爽爽视频| 日韩精品成人免费观看视频| 亚洲一区在线日韩在线深爱| 午夜dj在线观看高清视频完整版| av中文资源在线资源免费观看| 中文字幕在线观看欧美| 亚洲网站视频福利| 国产精品啪视频| 亚洲国产一区二区精品视频| 97超碰资源站在线观看| 国产激情视频网址| 欧美无砖砖区免费| 日韩成人激情视频| 嫩草影院网站在线| 色8久久久久| 欧美精品一区在线观看| 99精品视频在线观看免费播放| 成人h猎奇视频网站| 欧美乱大交xxxxx潮喷l头像| 欧美两根一起进3p做受视频| 国产精品中文久久久久久| 精品美女视频在线观看免费软件| 图片区偷拍区小说区| 性色av一区二区三区红粉影视| 亚洲午夜性刺激影院| 日韩欧美成人一区| 人妻av无码一区二区三区| 99精品老司机免费视频| 奇米精品一区二区三区在线观看一| 日韩成人一区二区| 国产美女高潮在线| 亚洲区小说区图片区| 欧美激情三区| 亚洲午夜精品久久久久久性色| 欧美激情国产日韩| 桥本有菜av在线| 精品国产1区2区3区| 国产精品66| 亚洲欧美日韩在线一区| 99热这里只有精品在线| 国产在线xxxx| 国产一区久久久| 99精彩视频在线观看免费| 看高清中日韩色视频| 伊人色综合久久久天天蜜桃| 偷拍亚洲精品| 久久一级黄色片| 中文字幕免费播放| 亚洲一区二区日本| 成熟丰满熟妇高潮xxxxx视频| 国产va在线播放| 欧美二级三级| 日韩欧美自拍| 夜夜嗨av一区二区三区四区| 国产精品日本一区二区| 日产精品久久久一区二区福利| 国产精品美女久久久久久| 亚洲天堂2014| 亚洲一区中文字幕永久在线| 亚洲人成影院77777| 久久精品五月| 亚洲福中文字幕伊人影院| 中文字幕一区二区三区蜜月| 91午夜国产| 成人亚洲精品久久久久软件| 在线播放免费av| www.久久色| 亚洲激情在线观看视频免费| 国内精品美女av在线播放| 91精品久久久久久久久青青| 日韩电影中文字幕在线观看| 在线观看中文字幕亚洲| 韩国成人二区| 大片免费在线看视频| 中文字幕久精品免费视频| 久久影音资源网| 狠狠操图片视频| 精品www久久久久奶水| 欧美三级视频在线观看| yellow字幕网在线| 91免费看`日韩一区二区| 亚洲精品成a人在线观看| 欧美视频xxxx| 正在播放欧美一区| 国产成年妇视频| 国产精品正在播放| 欧美r级电影| mm1313亚洲国产精品无码试看| 成人午夜视频一区二区播放| 亚洲色图二区| 国产伦精品一区二区三区视频黑人| 日韩最新中文字幕电影免费看| 日韩一级片网址| 真实乱视频国产免费观看| 亚洲啪啪aⅴ一区二区三区9色| 神马久久影院| 国产精品久久久久av免费| 国语自产精品视频在线看抢先版图片| 天天天天天天操| 精品久久久无码中文字幕| 美女被艹视频网站| 亚洲人成网站色在线观看| 久操视频在线| 最新版天堂资源在线| 精品电影在线观看| 午夜一区二区三区不卡视频| 亚洲影音先锋| 大胆人体一区二区| 日本久久久久久久久久久久| 高清一区二区视频| 亚洲一级电影| 中文字幕乱码一区二区| 无码人妻丰满熟妇区毛片蜜桃精品| 成人精品999| av漫画在线观看| 97中文在线| 亚洲爆乳无码一区二区三区| 精品国产一二三区| 欧美日一区二区三区在线观看国产免| 北条麻妃一区二区三区中文字幕| 不卡电影免费在线播放一区| 国产suv精品一区二区三区| 上原亚衣av一区二区三区| 色就色 综合激情| 四虎成人在线视频| 国产精品亚洲第五区在线| 久久伊人成人网| 日韩在线免费高清视频| bt在线麻豆视频| 亚洲天天做日日做天天谢日日欢| 天堂中文在线观看视频| 婷婷综合福利| 久久久加勒比| 国内精品久久久久| 99热这里只有精品2| 亚洲自拍偷拍网站| 在线天堂av| 久久爱www久久做| 啪啪一区二区三区| 国产成人在线免费观看视频| 日韩私人影院| 日本精品久久久久影院| 国产一区在线电影| 久久久久久无码精品人妻一区二区| 国产又黄又大又粗视频| 国产精品123区| 久久电影国产免费久久电影| 亚洲尤物在线视频| 少妇无套高潮一二三区| 日韩新的三级电影| 国产青春久久久国产毛片| 好紧好硬好湿我太爽了| 男人插曲女人的视频| 欧美日韩久久一区| 色的视频在线观看免费播放| 两性午夜免费视频| 欧美a级片免费看| av一区二区三区四区电影| 免费久久一级欧美特大黄| 欧美一区二区三区不卡| 美女网站免费观看| 深夜成人在线观看| 亚洲妇女无套内射精| 久久99热这里只有精品| 中文字幕在线2021| 在线看福利67194| 欧美高清视频一区二区| 欧美三级在线免费观看| 在线视频国内自拍亚洲视频| 美洲精品一卡2卡三卡4卡四卡| 91丨九色丨黑人外教| 午夜精品一区二区三区电影天堂| 1024在线看片你懂得| 国产偷窥老熟盗摄视频| 国模私拍国内精品国内av| www.久久久久久久久久| 国产在线视频三区| 西西人体一区二区| 中文字幕在线播放一区| 一区二区三区久久| 成人久久精品人妻一区二区三区| 国产xxx免费观看| 在线观看免费黄色| 国内精品久久久久久99蜜桃| 国产亚洲精品高潮| 欧美1o一11sex性hdhd| 琪琪一区二区三区| 日韩理论片一区二区| 色狠狠久久aa北条麻妃| 涩涩av在线| 国产经典一区二区| 亚洲 国产 日韩 欧美| 电影在线观看一区二区| 中文字幕亚洲专区| 伊人波多野结衣| 影音先锋中文字幕第一页| 国产精品久久成人免费观看| 中文另类视频| 国产精品第二十页| 中文字幕天堂av| heyzo国产| 免费一级特黄特色毛片久久看| 欧美高清视频一二三区| 欧美成人午夜做爰视频在线观看| 男人天堂网在线视频| 美女福利一区二区三区| 日韩不卡的av| 凹凸成人在线| 亚洲成在人线免费| 欧美成人3dxxxx| 五月婷婷久久丁香| 国产又粗又长又黄| 亚洲精品a区| 欧美精品在欧美一区二区| 一本在线高清不卡dvd| 久久综合伊人77777麻豆| 久久久久久免费毛片精品| 性欧美videos白嫩| 这里只有精品免费| 中文字幕午夜精品一区二区三区| 国产探花一区二区三区| 果冻天美麻豆一区二区国产| 91精品国产91久久久久福利| 国产精品99久久久久久久久| 91成人国产在线观看| 精品国产精品国产偷麻豆| 超碰cao国产精品一区二区| 91美女福利视频高清| 国产高清视频一区三区| 91精品国产高清久久久久久91| 国产精品视屏| 九草视频在线观看| 国产99久久精品一区二区300| 加勒比av中文字幕| www.激情网.com| 福利一区二区在线| 青青久在线视频| 中文字幕日韩av综合精品| 国产精品一区在线观看乱码| 无码精品视频一区二区三区| 高清日韩中文字幕| 日韩欧美精品久久| jizzjizzjizz中国免费| 精品视频一区二区三区在线观看| 久草免费在线视频观看| 欧美日韩激情一区二区三区| 97人洗澡人人免费公开视频碰碰碰| 亚洲国产精品免费在线观看| 亚洲天堂一级片| 免费中文日韩| 日韩一区二区免费在线电影| 国产裸体无遮挡| 日本午夜免费一区二区| 国产欧美韩国高清| 污网站在线免费| 熟女少妇一区二区三区| 国产一区二区观看| 亚洲精品在线不卡| 久久午夜福利电影| 精品无码人妻一区二区三区| 精品露脸国产偷人在视频| 欧美日本精品一区二区三区| 99热国产在线| 国产婷婷97碰碰久久人人蜜臀| 国产成a人亚洲精| 国产91色蝌蚪视频| 一本色道久久综合无码人妻| 波多野结衣网站| 超碰超碰人人人人精品| 亚洲国产一区二区在线播放| 日韩在线一二三| 狠狠色噜噜狠狠狠888奇米| 亚洲欧美另类在线| 91中文字幕在线视频| 久久中文字幕导航| 欧美第一精品| 国产又粗又长又爽| 日本卡一卡2卡3卡4精品卡网站| 欧美一区二区三区久久精品茉莉花| 精品在线播放午夜| 亚洲色图 激情小说| 高清一区二区三区视频|