999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

簡述Visual FoxPro總體性能提高的方法

2008-04-12 00:00:00
職業時空 2008年10期

Visual FoxPro關系型數據庫引進了對象模型,提高了引擎的存取速度并增強了客戶/服務器特性,使整個管理系統的功能更加強大。但是,這些強大功能的代價是管理系統變得更加復雜,很難避免出現低性能的應用程序。本文從實際工作中總結出一些改善、提高Visual FoxPro總體性能的技巧和方法,在此拋磚引玉。

一、改善本地數據訪問的性能

1.正確創建索引。在Visual FoxPro中索引,就是用戶根據數據庫表中的某些字段值,為數據表建立一個順序的索引文件。由于Visual FoxPro中的索引是基于樹的數據結構,使得記錄的顯示、查詢、打印更為迅速,同時也可以限制記錄重復,并支持不同表之間的“關系”。索引的創建雖然十分簡單,但不要建立太多的索引,因為Visual FoxPro需要更新每個索引,會降低程序的執行效率。創建索引的原則有二:一是只需在用于篩選和聯接的數據上建立索引;二是不要在那些只有少數離散數據中取值的字段(如邏輯型字段)上建立索引。另外,應該避免以FOR<條件>或.NOT.<條件>這樣的形式建立索引表達式,因為這些表達式無法優化。例如:INDEX ON DELETED()TAG DEL是可以進行Rushmore優化的,但是,INDEX ON.NOT.DELETED()TAG NOTDEL則不能。如果我們不想包含被刪除的記錄,解決的辦法是先設置SET DELETED ON,再創建索引,同樣可以加速操作。

2.使用新的數據類型。Visual FoxPro引入了4種新的數據類型:日期時間型、整型、雙精度型和貨幣型。其中整型以四字節,其它數據類型以八字節的二進制數據形式存儲在磁盤上。使用這些數據類型有兩個優點:一是由于在磁盤上保存數據時所占的空間更小,使得在從磁盤向內存加載數據和索引時,一次可以加載更多,從而提高了應用程序的性能。二是不需要進行數據轉換,數據訪問更快。使用這些類型的數據作為主關鍵字和外部關鍵字的值,可以得到更小的數據表文件,更小的索引文件,更快的連接。

3.優化查詢條件。Visual FoxPro通過查找與篩選表達式左邊相匹配的索引表達式來優化篩選條件。我們經常試圖將索引的標識名與一個篩選表達式相匹配,而Visual FoxPro是無法通過這種方式進行優化查詢的。例如,下面的索引就是錯誤的:USE customers/INDEX ON UPPER(cu_name)TAG name/SELECT*FROM customers WHERE cu_name=BILL。

正確的方法是∶SELECT * FROM customers WHERE UPPER(cu_name)=BILL

4.事務安排要緊湊。在事務中包含其它任何操作,如:使用編程結構的CASE、WHILE或IF語句等,都會降低更新數據的效率。因為使用事務需要鎖定記錄,并且在提交事務之前不會釋放這些鎖定的記錄。即使我們使用了RLOCK()或FLOCK(),然后執行UNLOCK,記錄在END TRANSACTION或ROLLBACK語句之前也將一直保持鎖定。因此,要提高Visual FoxPro的性能,就要減少鎖定記錄的時間。事務應該只包含更新數據操作。

二、提高遠程數據訪問的性能

1.訪問遠程視圖。在一個應用程序的功能單元中(如表單或報表),往往不需要訪問表中的所有數據。通過創建遠程視圖,得到(或更新)我們需要的部分數據,就可以減少通過網絡的數據數量。

2.使用條件限定子句。為了進一步限制下載(或更新)的數據數量,可以使用WHERE子句。例如:我們只需要西南部的客戶記錄,SELECT語句為:

SELECT customer_id,company,contact,address FROM customers WHERE region=NORTHWEST

3.使用更新條件。視圖設計器中的“更新條件”選項卡允許我們指定視圖中的數據更新(插入和刪除)。在“SQL WHERE子句包括”中,我們可以控制UPDATE和DELETE操作中WHERE子句的內容。這對于在后端控制數據沖突是很關鍵的,對于改善性能也是很重要的。因為我們向后端更新的字段總是可更新字段的子集(并且一定是視圖中字段總數的子集),在大多數情況下都使用“關鍵字和已修改字段”選項。對于支持時間戳的服務器數據庫,建議使用“關鍵字和時間戳”設置,這種更新方式比用“關鍵字和已修改字段”更快。

4.使用FetchMemo屬性。FetchMemo屬性控制當從后端取得一個記錄時是否也取得備注和二進制(通用字段)數據。在需要時才使之為.T.。一般情況下,應將該屬性設置為.F.,從而提高運行效率。

5.使用PacketSize屬性。PacketSize屬性控制向數據庫服務器傳送和下載的網絡包的大小(字節),默認值是4096字節。它是由ODBC設置的,不同的網絡對該屬性有不同的處理,我們可參閱網絡服務文檔。如果我們的網絡支持更大的數據包,我們可以在每次請求(SELECT、INSERT、UPDATE、DELETE)時將該屬性值增加以加大網絡吞吐量。

6.使用BatchUpdateCount屬性。有些服務器(例如Microsoft SQL ServerServer)允許我們在一個單獨的數據包中發送一批SQL語句,這個技術將加速更新、刪除和插入,因為通過網絡傳送的網絡包的絕對數量減少了,而且服務器數據庫可以成批編譯多個語句。該屬性可以在“查詢”菜單的“高級選項”對話框中設置,或者通過DBSETPROP()或CURSORSETPROP()函數來設置。

7.在本地機上保存查閱表。在很多情況下,我們的應用程序經常訪問只讀數據。對于從不更改或很少更改的數據,將他們保存在本地機上,也就是說,不把這些表裝在服務器上。這樣查詢會更快。

三、改造表單對象性能

1.使用數據環境。因為Visual FoxPro使用底層的系統調用來打開表并建立索引和關系,所以在“表單設計器”或“報表設計器”中使用數據環境,打開表和在表間建立關系的速度會比在表單的Load事件中使用USE、SET ORDER和SET RELATION命令快更多。

2.限制表單集中表單的數目。在更多情況下,我們應該建立獨立的表單并在需要它們時執行DO FORM命令,只有在必須讓一組表單共享一個私有數據工作期時,才使用表單集。因為當我們運行一個表單集時,即使只顯示了表單集的第一個表單,Visual FoxPro也會創建表單集中所有表單和所有表單中的所有控件,這樣很費時間。如果表單不必共享一個私有數據工作期,這樣做是不必要的。當然,如果使用了表單集,在訪問表單集中的表單時會比較快,因為所有表單已被加載到內存中了。

3.向頁框中動態加載頁面控件。與表單集類似,當加載頁框時,也加載了每個頁面上的所有控件,從而降低了性能。我們可以通過創建頁框中每個頁面上控件的類,使得在需要訪問時才加載頁框中的其它控件,從而提高效率。

4.使用LockScreen屬性。這個屬性允許我們延遲屏幕刷新。例如,使控件可見或不可見,更改控件顏色,或者在綁定型控件中移動記錄等,都可以用這個屬性將它們延遲到所有更改都結束時再刷新,這樣系統的效率會更高。

(作者單位:四川省經濟貿易學校)

主站蜘蛛池模板: 欧美精品一区二区三区中文字幕| 黄色国产在线| 免费国产高清视频| 国产日韩欧美一区二区三区在线| 天天干天天色综合网| 国产人碰人摸人爱免费视频| 亚洲三级成人| 免费啪啪网址| 国产色婷婷| 免费黄色国产视频| 欧美亚洲中文精品三区| 91亚洲影院| 国产在线观看一区精品| 亚洲中字无码AV电影在线观看| 99久久国产精品无码| 亚洲精品视频在线观看视频| 亚洲精品午夜无码电影网| 澳门av无码| 无码在线激情片| 国产内射在线观看| 久久精品人人做人人爽| 思思99热精品在线| 欧美亚洲综合免费精品高清在线观看| 国产亚洲精品97在线观看| 亚洲精品777| 国产精品专区第1页| 中文无码日韩精品| 日韩精品一区二区三区大桥未久| 精品无码一区二区在线观看| 人人91人人澡人人妻人人爽| 高清无码不卡视频| 99热这里只有免费国产精品| 国产精品视频免费网站| 国产综合欧美| 午夜久久影院| 亚洲av日韩av制服丝袜| 在线观看国产网址你懂的| 国产97视频在线| 日韩小视频在线观看| 国产欧美中文字幕| 亚洲美女久久| 亚洲精品国产综合99久久夜夜嗨| 欧美三级视频在线播放| 亚洲天堂久久| 亚洲美女AV免费一区| 婷婷色中文| 国产主播喷水| 激情乱人伦| 狠狠色噜噜狠狠狠狠色综合久| 9啪在线视频| 久久亚洲国产最新网站| 久青草网站| 国产精品对白刺激| 亚洲精品成人福利在线电影| 久久夜夜视频| 制服丝袜国产精品| 成人免费午间影院在线观看| 国产精品永久不卡免费视频| 四虎永久在线精品影院| 一级毛片在线免费视频| 亚洲综合欧美在线一区在线播放| 青青草国产精品久久久久| 福利一区三区| 午夜毛片免费观看视频 | 国产在线观看精品| 国产成人无码AV在线播放动漫| 无码aaa视频| 欧美激情综合| 五月丁香伊人啪啪手机免费观看| 久久精品视频亚洲| 深爱婷婷激情网| 欧美成人精品在线| 蜜臀av性久久久久蜜臀aⅴ麻豆| 亚洲狠狠婷婷综合久久久久| 99视频精品全国免费品| 性欧美在线| 国产不卡一级毛片视频| 99热6这里只有精品| 日本草草视频在线观看| A级全黄试看30分钟小视频| 97视频在线精品国自产拍| 2020亚洲精品无码|