翻譯|使用教程|編輯:李爽夏|2019-02-15 09:21:11.000|閱讀 649 次
概述:本篇文章介紹了UniDAC使用數(shù)據(jù)集的基本階段以及提高每個(gè)階段性能的方法。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
Universal Data Access Components (UniDAC)是一款通用數(shù)據(jù)庫(kù)訪問組件,提供了多個(gè)數(shù)據(jù)庫(kù)的直接訪問,如針對(duì)Windows的Delphi, C++Builder, Lazarus (以及 Free Pascal) , Mac OS X, iOS, Android, Linux和64和32位的FreeBSD等等。我們將長(zhǎng)期的經(jīng)驗(yàn)集于這個(gè)小組件,提供統(tǒng)一的數(shù)據(jù)庫(kù)連接訪問(如oracle、微軟SQL等等)。這意味著您可以在您的項(xiàng)目之間輕松地切換不同的數(shù)據(jù)庫(kù),以及創(chuàng)建跨數(shù)據(jù)庫(kù)應(yīng)用程序接口。
本主題考慮使用數(shù)據(jù)集的基本階段以及提高每個(gè)階段性能的方法。
如果應(yīng)用程序經(jīng)常執(zhí)行連接/斷開連接操作,則可以使用池模式(TCustomDAConnection.Pooling = True)獲得額外的性能。它大大減少了連接重新打開時(shí)間(數(shù)百次)。這種情況通常發(fā)生在Web應(yīng)用程序中。
如果應(yīng)用程序多次執(zhí)行同一查詢,則可以使用TCustomDADataSet.Prepare方法或設(shè)置TDADataSetOptions.AutoPrepare屬性以提高性能。例如,它可以為Master/Detail 關(guān)系中的細(xì)節(jié)數(shù)據(jù)集或TDAUPDATESQL中的更新對(duì)象啟用。通過這種方式獲得的性能增益可以是百分之幾到幾倍,具體取決于具體情況。
要執(zhí)行SQL語句,TUniSQL組件比TUniQuery更可取。它可以增加幾個(gè)百分點(diǎn)的性能增益。
如果TCustomDADataSet.Options.StrictUpdate選項(xiàng)設(shè)置為False,則不計(jì)算RowAffected屬性,該屬性將變?yōu)榈扔诹恪_@可以提高查詢執(zhí)行的性能,因此,如果您需要一次執(zhí)行許多數(shù)據(jù)更新語句,并且不介意受影響的行數(shù),請(qǐng)將此選項(xiàng)設(shè)置為False。
當(dāng)數(shù)據(jù)集在關(guān)鍵字段字段上進(jìn)行本地排序時(shí),Locate函數(shù)的工作速度更快。可以使用indexFieldNames屬性設(shè)置本地?cái)?shù)據(jù)集排序。如果數(shù)據(jù)集包含大量行,則性能增益可能很大。
當(dāng)查找數(shù)據(jù)集在本地按查找鍵排序時(shí),查找字段的工作速度更快。
在計(jì)算字段和查找字段上進(jìn)行本地排序和定位時(shí),設(shè)置TDadatasetOptions.CacheCalcFields屬性可以提高性能。當(dāng)計(jì)算字段表達(dá)式包含復(fù)雜的計(jì)算時(shí),它也很有用。
設(shè)置TDADataSetOptions.LocalMasterDetail選項(xiàng)可以通過避免詳細(xì)刷新時(shí)的服務(wù)器請(qǐng)求來大大提高性能。設(shè)置TDADataSetOptions.DetailDelay選項(xiàng)對(duì)于避免頻繁切換主數(shù)據(jù)集記錄時(shí)刷新詳細(xì)信息非常有用。
如果應(yīng)用程序以CachedUpdates模式更新數(shù)據(jù)集,則將TCustomDADataSet.Options.UpdateBatchSize選項(xiàng)設(shè)置為1以上可以通過減少對(duì)服務(wù)器的請(qǐng)求數(shù)來提高性能幾百倍。
通過使用Dataset.UpdateObject.ModifyObject、Dataset.UpdateObject等,您還可以稍微提高數(shù)據(jù)發(fā)送性能(幾個(gè)百分點(diǎn))。通過設(shè)置這些對(duì)象的AutoPrepare屬性,可以獲得很少的額外性能改進(jìn)。
購(gòu)買UniDAC正版授權(quán),請(qǐng)點(diǎn)擊“”喲!
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn