合理使用ADO的參數(shù)規(guī)則,優(yōu)化其執(zhí)行效率
- 2021-04-28 08:00:00
- 轉(zhuǎn)貼:
- CSDN
- 14175
access在數(shù)據(jù)處理中,用得比較多要數(shù)是ADO了。數(shù)據(jù)量大了,避免不了效率下降。
下面幾點(diǎn)規(guī)則,只要程序員了解并且適當(dāng)?shù)厥褂迷趹?yīng)用系統(tǒng)中,有利于優(yōu)化ADO和ADOExpress的執(zhí)行效率,提高運(yùn)行速度:
1、 盡量找到真正的原生ADO和OLE DB驅(qū)動(dòng)程序。盡量不要使用ADO For ODBC驅(qū)動(dòng)程序,因?yàn)檫@種架構(gòu)使用在一些數(shù)據(jù)庫時(shí)會(huì)發(fā)生不正常的執(zhí)行狀況,也比原生ADO和OLE DB驅(qū)動(dòng)程序來得慢一些。
2、 ADO驅(qū)動(dòng)程序的品質(zhì)大大地影響了應(yīng)用系統(tǒng)的執(zhí)行效率,因此,你應(yīng)該為你的數(shù)據(jù)庫找一個(gè)良好的ADO驅(qū)動(dòng)程序。
3、 盡量使用客戶端的Cursor Location,并且只存取應(yīng)用程序真正需要的數(shù)據(jù)到客戶端,使用少量、多次的方式存取數(shù)據(jù)。使用少量、多次的方式存取數(shù)據(jù)不管是對(duì)于主從架構(gòu)或分布式多層應(yīng)用系統(tǒng)都是很好的方式。特別是對(duì)于Internet/Intranet和電子商務(wù)應(yīng)用系統(tǒng)來說,使用這種方式可以確保應(yīng)用系統(tǒng)能夠在許多用戶同時(shí)使用的狀況下仍然保有合理的執(zhí)行速度。
4、 適當(dāng)設(shè)定CacheSize屬性值。這是一個(gè)絕對(duì)不可忽略的設(shè)定,它的重要性僅次于Cursor Location。雖然在前面討論的內(nèi)容中我們可以發(fā)現(xiàn)設(shè)定CacheSize接近1000左右可以得到最好的效率/空間比,但是必須考慮當(dāng)應(yīng)用系統(tǒng)同時(shí)被許多用戶同時(shí)存取時(shí),在一瞬間網(wǎng)絡(luò)會(huì)傳遞的數(shù)據(jù)量有多大。因此你可能必須根據(jù)你的應(yīng)用系統(tǒng)的執(zhí)行狀況來適當(dāng)?shù)販p少CacheSize為100 ~ 1000之間的數(shù)值。
5、 許多討論如何優(yōu)化ADO的文件都會(huì)建議使用存儲(chǔ)過程,因?yàn)檫@些文件都假設(shè)你只會(huì)使用MS SQL Server。但是不管使用什么數(shù)據(jù)庫,如果可以的話,那么對(duì)于需要處理大量數(shù)據(jù)的工作,使用存儲(chǔ)過程絕對(duì)可以增加ADO應(yīng)用程序的執(zhí)行效率。因?yàn)樵谶@種情形下,存儲(chǔ)過程可以讓這些大量的數(shù)據(jù)不傳遞到客戶端,而是直接在數(shù)據(jù)庫中處理數(shù)據(jù),這可以避免造成網(wǎng)絡(luò)嚴(yán)重的負(fù)荷。即使你不想使用存儲(chǔ)過程,因?yàn)槟憧赡軙?huì)使用不同的數(shù)據(jù)庫,對(duì)于一些經(jīng)常會(huì)執(zhí)行的工作,至少也應(yīng)該使用Prepared ADO/ ADOExpress組件,這樣也可以增加應(yīng)用程序的執(zhí)行效率。
6、 對(duì)于不會(huì)回傳結(jié)果數(shù)據(jù)集的工作,例如使用Update、Delete等修改大量數(shù)據(jù)的工作,可以考慮結(jié)合存儲(chǔ)過程和ADO的異步執(zhí)行模式。這樣可以大大增加ADO應(yīng)用程序的執(zhí)行效率以及減少ADO應(yīng)用程序的反應(yīng)時(shí)間。
7、 ADO的Recordset對(duì)象,或ADOExpress的TADODataSet、TADOQuery和TADOTable組件雖然都可以使用Select的SQL命令存取數(shù)據(jù),并且讓用戶修改數(shù)據(jù)再更新回?cái)?shù)據(jù)源中。但是,如果你正在開發(fā)的ADO應(yīng)用程序會(huì)執(zhí)行大量的數(shù)據(jù)修改的工作,那么你應(yīng)該使用數(shù)個(gè)不同的TADODataSet、TADOQuery和TADOTable組件。其中一個(gè)用來選取用戶需要的數(shù)據(jù),并且使用其他的TADODataSet,
TADOQuery和TADOTable組件來執(zhí)行Update和Delete等的SQL命令,這樣可以增加ADO應(yīng)用程序的執(zhí)行效率。
8、 本項(xiàng)和第7項(xiàng)有關(guān),即當(dāng)你使用ADO開發(fā)分布式多層應(yīng)用系統(tǒng)時(shí),盡量設(shè)定TDataSetProvider組件的Resolve To DataSet為True。讓ADO本身來處理數(shù)據(jù)的修 改,而不要使用MIDAS的SQL Resolver,因?yàn)锳DO可以更好地處理數(shù)據(jù)修改的數(shù)據(jù)。但是請(qǐng)注意,由于ADOExpress目前有一個(gè)臭蟲,因此在分布式多層應(yīng)用系統(tǒng)中不要使用TADODataSet、TADOQuery和TADOTable組件來執(zhí)行Update和Delete等的SQL命令。請(qǐng)直接使用執(zhí)行Select SQL命令的TADODataSet、TADOQuery和TADOTable組件來執(zhí)行修改數(shù)據(jù)的工作。
9、 盡量使用Optimistic和BatchOptimistic這兩種類型的LockType,因?yàn)樗鼈儾坏珪?huì)降低系統(tǒng)鎖定的資源,也可以增加ADO應(yīng)用程序的執(zhí)行效率。
10、 ADO的Batch Update模式和BDE/IDAPI的CacheUpdate非常類似,不管是用在主從架構(gòu)或Internet/Intranet及電子商務(wù)應(yīng)用系統(tǒng)中都可以增加ADO應(yīng)用程序的執(zhí)行效率。因此程序員應(yīng)該盡量使用這種模式來開發(fā)ADO應(yīng)用程序。
11、 TADODataSet、TADOQuery和TADOTable組件的MarshalOptions控制了客戶端修改的數(shù)據(jù)如何傳遞回OLE DB Provider或數(shù)據(jù)源進(jìn)行更新的工作。在分布式多層應(yīng)用系統(tǒng)和Internet/Intranet及電子商務(wù)應(yīng)用系統(tǒng)中我們絕對(duì)不希望傳遞任何多余的數(shù)據(jù),以避免浪費(fèi)網(wǎng)絡(luò)資源。因此適當(dāng)?shù)卦O(shè)定MarshalOptions屬性值為moMarshalModifiedOnly也可以增加應(yīng)用系統(tǒng)的執(zhí)行效率。
12、 對(duì)于和圖形用戶接口有關(guān)的ADO應(yīng)用程序,例如,如果需要在TDBGrid組件中顯示大量的數(shù)據(jù),那么不要忘記我們?cè)缫咽熘募记?,暫時(shí)關(guān)閉數(shù)據(jù)感知組件和ADO存取組件之間的關(guān)系,等待數(shù)據(jù)存取的工作完成之后再啟動(dòng)連接,那么將可以大大增加圖形用戶接口響應(yīng)用戶的效率。這就是說,當(dāng)應(yīng)用程序要結(jié)合大量數(shù)據(jù)存取和圖形用戶接口時(shí),不要忘記調(diào)用Disable Controls和Enable Controls這兩個(gè)方法。
- office課程播放地址及課程明細(xì)
- Excel Word PPT Access VBA等Office技巧學(xué)習(xí)平臺(tái)
- 將( .accdb) 文件格式數(shù)據(jù)庫轉(zhuǎn)換為早期版本(.mdb)的文件格式
- 將早期的數(shù)據(jù)庫文件格式(.mdb)轉(zhuǎn)換為 (.accdb) 文件格式
- KB5002984:配置 Jet Red Database Engine 數(shù)據(jù)庫引擎和訪問連接引擎以阻止對(duì)遠(yuǎn)程數(shù)據(jù)庫的訪問(remote table)
- Access 365 /Access 2019 數(shù)據(jù)庫中哪些函數(shù)功能和屬性被沙箱模式阻止(如未啟動(dòng)宏時(shí))
- Access Runtime(運(yùn)行時(shí))最全的下載(2007 2010 2013 2016 2019 Access 365)
- access vba代碼太長(zhǎng),換行,分行的寫法
- VB6 VBA Access真正可用并且完美支持中英文的 URLEncode 與 URLDecode 函數(shù)源碼
- 自定義VB中的urlencode函數(shù),將URL中特殊部分進(jìn)行編碼
- Access 函數(shù)簡(jiǎn)化串接sql字符串,減少符號(hào)導(dǎo)致的書寫錯(cuò)誤
- vba完全關(guān)閉IE瀏覽器及調(diào)用IE瀏覽器的簡(jiǎn)單應(yīng)用
- 利用FollowHyperlink方法打開超鏈接提示“無法下載您要求的信息”的解決方案
- 在access中用代碼打開文本框中超鏈接地址
- Activex控件或Dll 在某些電腦無法正常注冊(cè)的解決辦法(regsvr32注冊(cè)時(shí)卡住)
- office使用部分控件時(shí)提示“您沒有使用該ActiveX控件許可的問題”的解決方法
- RTF文件(富文本格式)的一些解析
- Access樹控件(treeview) 64位Office下出現(xiàn)橫向滾動(dòng)條不會(huì)自動(dòng)定位的解決辦法
- Access中國(guó)樹控件 在win10電腦 節(jié)點(diǎn)行間距太小的解決辦法
- EXCEL 2019 64位版(Office 2019 64位)早就支持64位Treeview 樹控件 ListView列表等64位MSCOMMCTL.OCX控件下載
- VBA或VB6調(diào)用WebService(直接Post方式)并解析返回的XML
- 早期PB程序連接Sqlserver出現(xiàn)錯(cuò)誤
- MMC 不能打開文件C:/Program Files/Microsoft SQL Server/80/Tools/Binn/SQL Server Enterprise Manager.MSC 可能是由于文件不存在,不是一個(gè)MMC控制臺(tái),或者用后來的MMC版
- sql server連接不了的解決辦法
- localhost與127.0.0.1區(qū)別
- Roych的淺談數(shù)據(jù)庫開發(fā)系列(Sql Server)
- sqlserver 自動(dòng)備份對(duì)備份目錄沒有存取權(quán)限的解決辦法
- 安裝Sql server 2005 express 和SQLServer2005 Express版企業(yè)管理器 SQLServer2005_SSMSEE
聯(lián)系人: | 王先生 |
---|---|
Email: | 18449932@qq.com |
QQ: | 18449932 |
微博: | officecn01 |