1、codeproject上面一个多线程执行sql的库。

开发中常常要执行一些耗时的数据操作,比如update、insert、bulk insert、index creation,

若顺序执行,则操作总时间是每个单独sql的时间之和  为了加快速度,采用线程池异步执行的做法,比如要要create 10个表以及加数据,则可以开10个线程去分别执

 codeproject上库源码地址 http://www.codeproject.com/Articles/29356/Asynchronous-T-SQL-Execution-Without-Service-Broke
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlTypes;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using SqlClrLib.Model; namespace ExampleTransaction
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
} private void Form1_Load(object sender, EventArgs e)
{
//开发中常常要执行一些耗时的数据操作,比如update、insert、bulk insert、index creation,
//若顺序执行,则操作总时间是每个单独sql的时间之和,
//为了加快速度,引入异步执行的做法,比如要要create 10个表以及加数据,则可以开10个线程去分别执行
} [Microsoft.SqlServer.Server.SqlProcedure]
public static int SaveWarehouseFinalData(Guid fileDefinitionId)
{
Console.WriteLine("Start");
StoredProcedures.Parallel_Declare(new SqlString("Parallel SaveWarehouseFinalData"));
//Console.WriteLine("Database connection is ... {0}", StoredProcedures.Block.ConnectionString);
//Console.WriteLine("Max threads count is ... {0}", StoredProcedures.Block.MaxThreads);
////ParallelProcedures.Block.IsTransactional = true;
////ParallelProcedures.Parallel_UseTransaction("Serializable");
//依次将存储过程加入到线程池
StoredProcedures.Parallel_AddSql(new SqlString("usp_WarehouseImportSaveToEAV"), new SqlChars(string.Format("usp_WarehouseImportSaveToEAV '{0}'", fileDefinitionId)));
StoredProcedures.Parallel_AddSql(new SqlString("usp_WarehouseImportSaveToAdminHistory"), new SqlChars(string.Format("usp_WarehouseImportSaveToAdminHistory '{0}'", fileDefinitionId)));
StoredProcedures.Parallel_AddSql(new SqlString("usp_WarehouseImportSaveToValResult"), new SqlChars(string.Format("usp_WarehouseImportSaveToValResult '{0}'", fileDefinitionId)));
//执行save操作(此处用的事务,如果不成功会回滚)
int failedCount = StoredProcedures.Parallel_Execute();
//Console.WriteLine("Failed count is ... {0}", failedCount);
ResultItem[] resultItems = (ResultItem[])StoredProcedures.Parallel_GetExecutionResult();
foreach (ResultItem r in resultItems)
{
//Console.WriteLine(r.ToString());
}
//Console.WriteLine("End..."); return failedCount;
} }
}

sql 多线程的更多相关文章

  1. SQLite安装、编译与应用

    什么是 SQLite SQLite是一款轻量级的.基于文件的嵌入式数据库,实现自包容.零配置.支持事务的SQL数据库引擎.与其他数据库管理系统不同,SQLite 的安装和运行非常简单,在大多数情况下, ...

  2. Linux云计算运维-MySQL

    0.建初心 优秀DBA的素质 1.人品,不做某些事情2.严谨,运行命令前深思熟虑,三思而后行,即使是依据select3.细心,严格按照步骤一步一步执行,减少出错4.心态,遇到灾难,首先要稳住,不慌张, ...

  3. MySQL主从复制介绍

    MySQL主从复制介绍 MySQL数据库的主从复制方案,和使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输,只不过MySQL的主从复制是其自带的功能,无需借助第三方工具,而且,M ...

  4. MySQL复制以及调优

    一. 简介 MySQL自带复制方案,带来好处有: 数据备份. 负载均衡. 分布式数据. 概念介绍: 主机(master):被复制的数据库. 从机(slave):复制主机数据的数据库. 复制步骤: (1 ...

  5. MySQL for OPS 07:主从复制

    写在前面的话 对于企业而言,在互联网这一块其实最重要的是数据.保证数据的安全性,稳定性是作为运维人的基本工作职责.于是为了数据安全性,引进了数据备份,bin log 等.但这并不意味着有这些就足够了. ...

  6. MySQL数据库性能优化与监控实战(阶段四)

    MySQL数据库性能优化与监控实战(阶段四) 作者 刘畅 时间 2020-10-20 目录 1 sys数据库 1 2 系统变量 1 3 性能优化 1 3.1 硬件层 1 3.2 系统层 1 3.3 软 ...

  7. MySQL-15-主从复制

    企业高可用性标准 1 全年无故障率(非计划内故障停机) 99.9% ----> 0.001*365*24*60=525.6 min 99.99% ----> 0.0001*365*24*6 ...

  8. MySQL主从复制介绍:使用场景、原理和实践

    MySQL主从复制介绍:使用场景.原理和实践 MySQL数据库的主从复制方案,和使用scp/rsync等命令进行的文件级别复制类似,都是数据的远程传输,只不过MySQL的主从复制是其自带的功能,无需借 ...

  9. 解决多线程调用sql存储过程问题

    场景: 我们程序现在改成多线程了,我现在需要把临时表中的数据给插入到TABLE_M中,但这时候可能其他的线程也在插入,我就不能用之前我们的方案了(select max(oid) from Tuning ...

随机推荐

  1. EasyUI中combobox的代码实例

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. (20)python pycharm

    使用GitHub 一·登录GitHub 1. 2. 3. 4. 二. 登录成功后再配置git 1 2.创建项目到github 3.下载github

  3. HDU 6216 A Cubic number and A Cubic Number【数学思维+枚举/二分】

    Problem Description A cubic number is the result of using a whole number in a multiplication three t ...

  4. debug 英文翻译

    declaration of 'int a' shadows a parameter :函数参数里,已经有这两个名称的变量了,指定义了同名的参数,造成了隐藏. expected primary-exp ...

  5. 树状数组优化DP 【模拟赛】删区间

    哇,难受得一匹. 看到题的一瞬间竟然只想到了\(n^3\)的区间\(DP\) 一.\(40pts\) 设\(f[i][j]\)代表删去\(i\)到\(j\)这一段区间的最小代价和. 然后直接写普通的区 ...

  6. POJ1251 Jungle Roads(Kruskal)(并查集)

    Jungle Roads Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 23882   Accepted: 11193 De ...

  7. [BZOJ 2817] 波浪

    Link: BZOJ 2817 传送门 Solution: 算是比较神的DP了吧, 首先这个绝对值处理起来很难受,肯定要想办法去掉 于是想到从小到大插入的方式,便不存在绝对值的问题了 插入一个数只有5 ...

  8. 【欧拉函数】BZOJ2190-[SDOI2012]longge的数学问题

    [题目大意] 求出∑gcd(i, N)(1<=i <=N). [思路] 对于x=ak,y=bk,若gcd(a,b)=1则必有gcd(x,y)=1.枚举N的所有因数,∑gcd(i, N)=∑ ...

  9. Java高级架构师(一)第08节:基本业务功能和数据字典

  10. JavaSE目录

    常识,环境变量,注释 标示符,常量,进制转换,类型转换,位运算符,语句 数组,函数 面向对象 多线程 String 包装类 集合 其他对象 IO流,IO流--FileReader&&F ...