当前位置: 首页 > news >正文

郑州做网站费用/武汉大学人民医院东院

郑州做网站费用,武汉大学人民医院东院,excel如何做超链接网站,品牌视觉形象设计案例10. 预编译语句 介绍 简单的准备 持久性 自动准备 10.1. 介绍 大多数应用程序多次重复使用相同的SQL语句,传递不同的参数。在这种情况下,预编译语句将起到很好的效果。 将命令语句发送到 KingbaseES,KingbaseES 将为它们解析和规划。然后…

10. 预编译语句

  • 介绍

  • 简单的准备

  • 持久性

  • 自动准备

10.1. 介绍

大多数应用程序多次重复使用相同的SQL语句,传递不同的参数。在这种情况下,预编译语句将起到很好的效果。 将命令语句发送到 KingbaseES,KingbaseES 将为它们解析和规划。然后可以再执行时使用预编译好的语句, 从而节省宝贵的设计时间。您的查询越复杂,您就越会注意到性能的提升。

预编译语句唯一存在的缺点是它们占有服务器端资源,例如缓存计划。如果您正在动态生成SQL查询, 请确保您不会因预编译过多而致使服务器不堪重负。大多数合理的应用程序不必担心这一点。

10.2. 简单的准备

要准备您的命令,只需使用以下标准的 ADO.NET 代码:

var cmd = new KdbndpCommand(...);
cmd.Parameters.Add("param", KdbndpDbType.Integer);
cmd.Prepare();
/* 设置Parameters */
cmd.ExecuteNonQuery();
/* 等等 */

请注意,所有参数都必须在调用之前设置 Prepare() ,它们是传递到 KingbaseES的信息的一部分,用于有效的规划语句。 您还必须在参数上设置 DbType 或者 KdbndpDbType 以明确指定数据类型,但不支持设置值。

预编译发生在单个语句上,而不是命令上,命令可以包含多个语句,将它们批处理在一起。这在以下情况中可能很重要:

var cmd = new KdbndpCommand("UPDATE foo SET bar=@bar where baz=@baz;UPDATE foo SET bar=@bar where baz=@baz");
/* 设置 Parameters。 */
cmd.Prepare();

虽然该命令中有两条语句,但由于SQL是相同的,所以使用相同的预处理语句来执行。

10.3. 持久性

KingbaseES 支持预编译好的语句持久性,当命令或链接关闭时,它们不会被关闭。Kdbndp 跟踪在每个物理连接上预编译的语句;如果您在同一连接上第二次预编译相同的SQL, Kdbndp 将简单地重用第一次预编译中编译好的语句。这意味着在拥有短连接、池连接的应用程序中, 预编译语句将随着应用程序的准备和连接的首次使用而被逐渐创建。 当打开一个新的池连接时将返回一个物理连接,该链接已经为您的SQL准备好了语句, 从而显著提升了性能。例如:

using(var conn = new KdbndpConnection(...))
using(var cmd = new KdbndpCommand("<some_sql>",conn)){conn.Open();cmd.Prepare(); /* 在这个物理连接上,Kdbndp 第一次使用KingbaseES进行准备 */cmd.ExecuteNonQuery();
}

您仍然可以选择通过调用 KdbndpCOmmand.Unprepare() 来关闭预编译语句。您还可以通过调用 KdbndpConnection.UnprepareAll() 来取消准备给定连接上的所有语句。

10.4. 自动准备

本章节已提供的预编译示例使性能有了显著的提升,但它们取决于您调用 Prepare() 命令。 然而,如果您在ADO.NET上使用某些数据层,例如 Dapper 或 Entity Framework,这些层很可能无法为您提供预编译。 它们目前没有利用准备好的语句。

Kdbndp 引入了自动准备。打开自动准备后,Kdbndp将跟踪您执行的语句,并在达到某个阈值时自动准备它们。达到这个阈值时, 语句会自动准备好,并且从此时起将按照预编译的的方式执行,从而完成本章节描述的所有性能优势。

要开启此功能,您只需设置 Max Auto Prepare 连接字符串参数,该参数决定了在任何给定时间可以在连接上自动准备多少条语句 (此参数默认为0,表示禁用该功能)。第二个参数 Auto Prepare Min Usages 确定在自动准备前需要执行多少次语句 (默认为5次)。由于不需要更改代码,您可以简单的尝试设置 Max Auto Prepare 并运行您的程序,以立即看到速度的提升。 另外,与显式准备的语句一样,自动准备的语句是持久的,允许您在短期连接应用程序中获得性能优势。

请注意,如果您直接针对Kdbndp 或 ADO.NET 进行编码,仍然建议使用 Prepare 显式准备命令,而非自动准备。 由于存在内部LRU缓存和各种簿记数据结构,与显式准备相比,自动准备确实会产生轻微的性能成本。 显式准备还允许您更好的准确控制哪些语句已准备好,哪些未准备好,并确保您的语句始终保持准备状态, 并且永远不会因为LRU机制而被弹出。

自动准备是一个复杂的新功能,如果您发现有任何奇怪的行为或问题,请尝试将其关闭。

http://www.lbrq.cn/news/1288027.html

相关文章:

  • 神马站长平台/网站统计分析平台
  • 做企业网站进行推广要多少钱/创量广告投放平台
  • 美团外卖网站开发/百度手机助手苹果版
  • 怎么在建设厅网站报名/seo基础教程使用
  • 网站建设与发布的预算/旺道seo推广效果怎么样
  • 做网站的技术性说明/谷歌 chrome 浏览器
  • 建设企业网站管理系统目的/营销网站系统
  • 不良网站进入窗口免费正能量/二级域名网址查询
  • 极速微网站建设cms/seo如何优化
  • wordpress怎么更改地址/seo服务外包客服
  • 西安商城网站建设制作/html制作网站
  • 东莞网站建议/设计公司网站模板
  • 外贸网站搜索引擎优化方法/太原seo代理商
  • 微信辅助做单网站/seo挂机赚钱
  • 5118站长平台/西安关键词网站排名
  • 免费做图网站/网站如何seo推广
  • ps网站首页设计/b2b平台
  • css如何让网站首字放大/网络营销公司名字
  • 大学做机器人比赛的网站论坛/企业营销策划论文
  • 微网站 微信/东莞seo网站推广建设
  • 武汉有个网站叫什么/网络推广外包怎么接单
  • 新手怎么建立自己的网站/网站开发技术
  • 遵义交通建设网站/怎么开网店
  • 新闻视频网站开发/长春seo快速排名
  • 上饶网站建设/营销型网站和普通网站
  • 网站安全建设需求/今天刚刚的最新新闻
  • 男和男做那个视频网站/杭州seo技术
  • 西昌城乡规划与建设局网站/营销
  • 诱人888网站/那个推广平台好用
  • 华为公司网站建设目标/网站优化的方式有哪些
  • C++中使用Essentia实现STFT/ISTFT
  • Mysql实现高可用(主从、集群)
  • 造成服务器内存不足的原因有什么
  • ARM 学习笔记(四)
  • 4种灵活的方法从POCO手机中删除联系人
  • Java项目中定时任务三方工具和技术的深度应用指南