zoukankan      html  css  js  c++  java
  • .net dataTable对象的处理性能

    今天做了个试验, 试验使用DataTable对象的过滤性能与手工比较性能.

    背景: 一个表中有80W条记录, 有两个字段field1, field2, 其中distinct field1有30W条记录,相当于第个field1对应有3条field2记录, 程序的目的是field1相同时合并field2, 即最终输出为:

    field10: field20;field21;field22...

    ...

    即最终输出30多W行, 第一列是field1,第二列是field1对应的不同field2值的合并串. 使用了下面两种方法,结果大为吃惊:

    >ConsoleApplication1.exe
    loop1:2008-12-18 17:46:08
    begin:2008-12-18 17:46:44
    00:00:00.4720000
    Filter:2008-12-18 17:46:44
    begin:2008-12-18 17:47:33
    00:00:43.7490000

    程序均未算上从DB取数据的时间,只算了处理数据的时间, 发现DataTable的filter性能差得实在太远,估计有60倍的差距. 当然上面的数据中field1的记录数也太多,过滤次数太多, 这也可能是个原因.

    不过以后还是使用下面的方法, 简单易理解, 性能也好, 少用select()过滤了,除非数据量非常少.

    Code
  • 相关阅读:
    OM Shipping 授权
    Account Summary 汇总模板
    OM Record is currently being worked on by another user, Please try to update it later.
    Initialization SQL Statement – Custom 配置错误,导致无法加载FORM
    ReOpen a Closed Inventory Accounting Period [ID 472631.1]
    IBM AIX User Lists
    Killing Oracle Sessions
    APPFND01016 (GL > Setup > Flexfields > Key > Rules)
    OM: release hold的时候,又遇到限制:You are not authorized to release this hold.
    SO History
  • 原文地址:https://www.cnblogs.com/margiex/p/1357715.html
Copyright © 2011-2022 走看看