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...