一,要提升性能,我们先要知道耗时的地方在哪里

1,数据库查询,
2,把数据组合成新集合循环嵌套太多

二,那我们怎么优化呢?

一,数据库查询,
1》,数据库查询:如果数据量小,我们可以用临时datatable,连表查询,,可是如果是连表都是千万级上亿数据,就不建议用连表
那这个时候该怎么办呢?
2》这个时候我们可以选择先单表查询,然后再循环体查询自己所要的其他关联数据,这个时候我们需要注意的点是什么?
3》减少数据库查询!!!!!!!!!这个是重点,那怎么减少呢?正常逻辑如下代码,可是数据量很耗性能

foreach (var item in listST)
{
var sModel= GetModel(); //如果这个方法每次都查询一次数据库,会很耗性能!!!导致循环循环很慢!,即时使用缓存也会很慢
item.name = sModel.name;
}

4》我们可以换一种思路,优化如下代码:

List<Student> listST = new List<Student>();
List<int> listInt = new List<int>();
int g = ;
foreach (var item in listST)
{
////我们可以选择每两千条数据查询一次
////保存成一个集合
if (g % == )
{
listST = GetList($"id in ({string.Join(",", listST.Skip(g).Take(2000).Select(m => m.id).Distinct().ToArray())})", , , "name,Id");
}
var sModel = listST.FirstOrDefault(m => m.id == item.id);
item.name = sModel.name;
g++;
}

二,把数据组合成新集合循环嵌套太多,这个就是优化逻辑,减少循环嵌套

C#导出大量数据到excel,怎么提升性能的更多相关文章

  1. PHP导出MySQL数据到Excel文件

    PHP导出MySQL数据到Excel文件 转载 常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存 ...

  2. .NET使用Office Open XML导出大量数据到 Excel

    我相信很多人在做项目的都碰到过Excel数据导出的需求,我从最开始使用最原始的HTML拼接(将需要导出的数据拼接成TABLE标签)到后来happy的使用开源的NPOI, EPPlus等开源组件导出EX ...

  3. 导出数据库数据制成Excel和txt

    引用ICSharpCode.SharpZipLib.dll 1.编写压缩和解压代码 using System; using System.Collections.Generic; using Syst ...

  4. java 对excel操作 读取、写入、修改数据;导出数据库数据到excel

    ============前提加入jar包jxl.jar========================= // 从数据库导出数据到excel public List<Xskh> outPu ...

  5. C#通过OLEDB导出大数据到Excel

    C#导出数据到Excel,基本有两种方法,一种方法是通过Microsoft.Office.Interop.Excel.Application,一行一列的写入Excel中:另一种方法是通过OLEDB,利 ...

  6. PHP导出MySQL数据到Excel

    经常会碰到需要从数据库中导出数据到Excel文件,用一些开源的类库,比如PHPExcel,确实比较容易实现,但对大量数据的支持很不好,很容易到达PHP内存使用上限.这里的方法是利用fputcsv写CS ...

  7. 导出表格数据到excel并下载(HSSFWorkbook版)

    这里主要前面是通过一个全局变量,在layui的done回调里拿到数据,然后将该数据导出到excel,这里要注意一点,下载excel不能用ajax方式,如果采用ajax下载默认会读取response返回 ...

  8. Vue中使用js-xlsx导出Data数据到Excel

    需要引入的第三方JS有:export.js.xlsx.extendscript.js.xlsx.full.min.js JS太大不贴出来,放一个可下载百度云连接:https://pan.baidu.c ...

  9. PHP导出大量数据到excel表格

    /** * @creator Jimmy * @data 2016/8/22 * @desc 数据导出到excel(csv文件) * @param $filename 导出的csv文件名称 如date ...

随机推荐

  1. JAVA批量文件下载

    1,看看我们封装的方法 方法中有三个参数:视频url,文件夹路径,视频名称. 调用方法进行下载. 2,看看结果 打印结果 文件夹下的视频下载成功 详细的参数配置可以参考我写的这篇文章:http://b ...

  2. macOS 更新 git 命令提示 xcrun,.gitignore 配置不生效问题。

    macOS 更新 运行git提示xcrun: error: invalid active developer path 在终端输入 xcode-select --install 即可以解决该问题 .g ...

  3. EcShop开发手册

    Ecshop文件结构 ecshop文件架构说明 ECShop 结构图及各文件相应功能介绍 ECShop upload 的目录 ┣ activity.php 活动列表 ┣ affiche.php 广告处 ...

  4. drwxr-xr-x是啥意思

    这里先说一下drwxr-xr-x是啥意思: 第一位表示文件类型.d是目录文件,l是链接文件,-是普通文件,p是管道 第2-4位表示这个文件的属主拥有的权限,r是读,w是写,x是执行. 第5-7位表示和 ...

  5. python 调用c++类方法(1)

    myTest.cpp: #include<iostream> #include<vector> class MyTest { public: MyTest(); ~MyTest ...

  6. sklearn—无监督最近邻

    无监督最近邻 NearestNeighbors (最近邻)实现了 unsupervised nearest neighbors learning(无监督的最近邻学习). 它为三种不同的最近邻算法提供统 ...

  7. ACL 2019 分析

    ACL 2019 分析 word embedding 22篇! Towards Unsupervised Text Classification Leveraging Experts and Word ...

  8. PushConsumer 消费消息

    CLUSTERING 模式下,消费者会订阅 retry topic // DefaultMQPushConsumerImpl#copySubscription private void copySub ...

  9. powered by Fernflower decompiler

    About Fernflower Fernflower is the first actually working analytical decompiler for Java and probabl ...

  10. Could not load type 'System.Runtime.CompilerServices.ExtensionAttribute' from assembly 'mscorlib 的一种情形

    没有引用任何.net 4.5的东西,也没有引用 Newtonsoft.dll,原因是引用了微软的tlb类型库,引用方法如 https://www.cnblogs.com/nanfei/p/108798 ...