广告
返回顶部
首页 > 资讯 > 数据库 >如何通过C#使用参数化和块语句来提高批处理SQL语句的执行效率
  • 848
分享到

如何通过C#使用参数化和块语句来提高批处理SQL语句的执行效率

2024-04-02 19:04:59 848人浏览 八月长安
摘要

本篇文章给大家分享的是有关如何通过C#使用参数化和块语句来提高批处理sql语句的执行效率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。&nbs

本篇文章给大家分享的是有关如何通过C#使用参数化和块语句来提高批处理sql语句的执行效率,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

 当你的项目要求你的程序对高达几万条的数据在集中的时间内执行固定序列的操作,且不能完全使用存储过程时而需要使用程序来执行时。会需要这些优化。    我们知道,SQL服务器对一条语句的执行,需要分析、编译、执行这些步骤,通过参数化我们可以对一种命令只分析和编译一次,而执行多次,从而提高效率。在执行时,如果每次提交语句,可以完成多条SQL语句,则可以减少通讯时间,也可以提高效率。
    通过 System.Data.IDbCommand.Prepare() 方法,可以在第一次执行语句时,分析和编译SQL语句,然后保存这个Command对象,下次使用时,直接设置参数执行。这个方法对oracle和MsSQL Server都有效。
    如果执行一批语句,在T-SQL和PLSQL中有一点不一样。

在T-SQL中,多条SQL语句之间,使用分号";"分隔就行。

而在PLSQL中,则需要用 begin ... end; 包起来,中间语句用分号";"分隔。öÆQ³kmÌLJîwww.netcsharp.cnÚåÂÄ?7ëÙm

相信这样做之后,你的效率会有几倍或者十几倍的提升。当然,你还可以对只是查而修改的表,做一下缓存处理,来减小访问数据库的次数。

下面我示例一下访问Oracle执行PLSQL的一个函数的例子

sb.Append(@"delete from bak_WF_Log_EngineLog where FlowInstanceID= :instanceId;");
sb.Append(@"delete from bak_WF_Log_ErrLog where FlowInstanceID= :instanceId;");
sb.Append(@"delete from WF_Running_MsgForEngineBak where FlowInstanceID= :instanceId;");
sb.Append(@"delete from bak_WF_Running_MsgForUser where FlowInstanceID= :instanceId;");
sb.Append(@"delete from bak_WF_Running_FlowActivity where FlowInstanceID= :instanceId;");
sb.Append(@"delete from bak_WF_Running_FlowData where FlowInstanceID= :instanceId;");
sb.Append(@"delete from bak_WF_Running_FlowInstance where FlowInstanceID= :instanceId;");

sb.Append("end;");

//准备 DbCommand
this.cmdDeleteFlowInstanceData = cmd = new OracleCommand();
cmd.Connection = this.connEngine;
cmd.CommandType = CommandType.Text;
cmd.CommandText = sb.ToString();
cmd.Parameters.Clear();
cmd.Parameters.Add("instanceId", OracleType.VarChar,250);

//准备一下以提高性能。
cmd.Prepare();
}

//设置参数
cmd.Parameters["instanceId"].Value =  flowinstanceid;

//设置事务
cmd.Transaction = this.tranEngine;

cmd.ExecuteNonQuery();

}
 
  

以上就是如何通过C#使用参数化和块语句来提高批处理SQL语句的执行效率,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: 如何通过C#使用参数化和块语句来提高批处理SQL语句的执行效率

本文链接: https://www.lsjlt.com/news/61724.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作