• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >C#教程 > c#实现用SQL池,多线程定时批量执行SQL语句的方法

c#实现用SQL池,多线程定时批量执行SQL语句的方法

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-28

通过本文主要向大家介绍了c#线程池,c#线程池使用,c#线程池实例,c#线程池的用法,c#多线程 线程池等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在实际项目开发中,业务逻辑层的处理速度往往很快,特别是在开发Socket通信服务的时候,网络传输很快,但是一旦加上数据库操作,性能一落千丈,数据库操作的效率往往成为一个系统整体性能的瓶颈。面对这问题,我们怎么办呢?好,下面我就为大家介绍一种方法:构建SQL池,分离业务逻辑层和数据访问层,让业务逻辑层从低效的数据库操作解脱,以提高系统整体性能。

(一)SQL池

SQL池是SQL容器,用于存放业务逻辑层抛过来的SQL语句。SQL池主要提供以下几种方法:

1)internal string Pop(),从池中取出SQL。

2)internal void Push(string item),增加一个SQL到池中。

3)internal string[] Clear(),清空SQL池,清空前,返回SQL池中所有SQL语句。

特别提醒一下,SQL池是面向多线程的,所以必须对公共资源SQL采取锁机制。这里采用互斥锁,当业务逻辑层线程往SQL池中抛入SQL语句时,禁止SQL执行线程执行SQL语句,反之,当SQL执行线程执行SQL语句时,也不允许业务逻辑层线程往SQL池中抛入SQL语句。为什么要这么做?因为SQL执行线程是批量执行SQL语句,在批量执行SQL语句前,会从池中取出所有SQL语句,如果此时业务逻辑层线程往SQL池中抛入SQL语句,则会导致这些SQL语句丢失,得不到执行。

下面是SQL池代码:

SQL池管理主要用于管理SQL池,向业务逻辑层线程和SQL执行线程提供接口。

业务逻辑层线程调用 public void PushSQL(string strSQL) 方法,用于向SQL池抛入SQL语句。

SQL执行线程调用 public void ExecuteSQL(object obj) 方法,用于批量执行SQL池中的SQL语句。

注意,SQL池管理类采用单例模型,为什么要采用单例模型?因为SQL池只能存在一个实例,无论是业务逻辑层线程还是SQL执行线程,仅会操作这一个实例,否则,将会导致SQL池不唯一,SQL执行无效。

下面是SQL池管理类代码:
using System.Collections.Gen

分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • C#线程池操作方法
  • C#实现多线程的同步方法实例分析
  • C#控制台下测试多线程的方法
  • C#线程执行超时处理与并发线程数控制实例
  • C#线程同步的三类情景分析
  • C#实现线程池的简单示例
  • C#线程间不能调用剪切板的解决方法
  • c#线程同步使用详解示例
  • C#线程池用法详细介绍
  • c#实现用SQL池,多线程定时批量执行SQL语句的方法

相关文章

  • 2017-05-28C#给PDF文件添加水印
  • 2017-05-28C#实现验证身份证是否合法的方法
  • 2017-05-28WPF中不规则窗体与WindowsFormsHost控件兼容问题的解决方法
  • 2017-05-28C#画笔Pen绘制曲线的方法
  • 2017-05-28WinForm ToolTip使用方法小结
  • 2017-05-28C# jpg缩略图函数代码
  • 2017-05-28c#队列Queue学习示例分享
  • 2017-05-28支持多类型数据库的c#数据库模型示例
  • 2017-05-28C#中ListView控件实现窗体代码
  • 2017-05-28C#判断字符串是否存在字母及字符串中字符的替换实例

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 基于C#代码实现九宫格算法横竖都等于4
    • C#中使用IrisSkin2.dll美化WinForm程序界面的方法
    • winform 实现控制输入法
    • C#正则检测字符串是否字母数字混编的方法
    • HTML文本框的值改变后触发后台代码的方法
    • WinForm实现按名称递归查找控件的方法
    • C#中GraphicsPath的Warp方法用法实例
    • C#字符串内存分配与驻留池学习分享
    • C#编写DES加密、解密类
    • 如何应用C#实现UDP的分包组包

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有