ArcEngine 幾種刪除資料的比較

2021-06-09 11:56:13 字數 1602 閱讀 5098

1、ifeaturecursor 游標查詢後,遍歷刪除

2、更新游標刪除ifeaturecursor.deletefeature()

3、itable.deletesearchedrows刪除

4、 idataset.workspace.executesql

一、 幾種刪除方法**

1. 查詢結果中刪除

private void delete1(ifeatureclass pfeatureclass)

system.runtime.interopservices.marshal.releasecomobject(pqueryfilter);

}2. 

更新游標刪除

private void delete2(ifeatureclass pfeatureclass)

system.runtime.interopservices.marshal.releasecomobject(pqueryfilter);

}3. 

使用deletesearchedrows刪除

private void delete4(ifeatureclass pfeatureclass)

4. executesql刪除

private void delete4(ifeatureclass pfeatureclass)

二、 測試效能和比較

1、  相同的資料條件,刪除2000條記錄

2、  測試**

ifeaturelayer pfeaturelayer = axmapcontrol1.map.get_layer(0) as ifeaturelayer;

ifeatureclass pfeatureclass = pfeaturelayer.featureclass;

system.diagnostics.stopwatch mywatch = new system.diagnostics.stopwatch();

mywatch.start();

delete1(pfeatureclass)

//delete2(pfeatureclass);

//delete3(pfeatureclass);

//delete4(pfeatureclass);

//delete5(pfeatureclass);

mywatch.stop();

測試情況

測試方法

第一次時間(單位ms)

第一次時間(單位ms)

15214ms

5735ms

2299ms

290ms

359ms

28ms

426ms

26ms

三、 結論

1、 使用executesql刪除最快,資料庫的效率最高。

2、 deletesearchedrows和executesql屬於批量刪除,效能較優。

3、 查詢結果中刪除,速度最慢,如果你使用這種方法,建立你馬上修改你的程式,因為你在浪費時間。

4、 

小資料量記錄數小於500000條,請使用deletesearchedrows或executesql,否則使用更新游標刪除(方法2),加上進度條,這樣介面很友好。

ArcEngine資料刪除幾種方法

一 幾種刪除方法 1.查詢結果中刪除 private void delete1 ifeatureclass pfeatureclass system.runtime.interopservices.marshal.releasecomobject pqueryfilter 2.更新游標刪除 priv...

ArcEngine資料刪除幾種方法和效能比較

原文 arcengine資料刪除幾種方法和效能比較 一 幾種刪除方法 1.查詢結果中刪除 private void delete1 ifeatureclass pfeatureclass iqueryfilter pqueryfilter new queryfilterclass pqueryfil...

ArcEngine資料刪除幾種方法和效能比較

原文 arcengine資料刪除幾種方法和效能比較 一 幾種刪除方法 1.查詢結果中刪除 private void delete1 ifeatureclass pfeatureclass iqueryfilter pqueryfilter new queryfilterclass pqueryfil...