当前位置: 首页 > 面试题库 >

DataReader基于序数的查询与命名查询

杜经艺
2023-03-14
问题内容

Microsoft(和许多开发人员)声称SqlDataReader.GetOrdinal方法与使用命名查找即使用DataReader相比,提高了从DataReader检索值的性能。reader
[“ ColumnName”]。问题是,如果处理小的分页记录集,那么 真正的 性能差异是什么?在整个代码中查找和引用序数索引是否值得付出额外的开销?


问题答案:

Microsoft建议不要在循环内调用GetOrdinal。

这将包括使用字符串索引器的间接调用。

您可以在循环的顶部使用GetOrdinal,将序数放入数组中,并使数组中的索引为const或为它们提供一个枚举(根本没有GetOrdinal),或者将GetOrdinal用作具有描述性名称的单个变量。

只有当您的集合很小时,我才真正认为这是过早的优化。



 类似资料:
  • 我试图比较Hibernate条件和命名查询的性能。我知道这一切都取决于实际的查询本身,最后一个字取决于它们在运行时如何配置文件。尽管如此,试图理清每一个都有什么。 我试图将Q分为两个部分&寻找两者的验证/更正: 命名查询与HQL相比具有相同的优势--查询在启动时被解析一次。然后从应用程序中任何必要的地方执行。 第2部分--比较两者: 所以在这张图里, 提亚。

  • 我正在尝试将Hibernate Criteria与命名查询进行性能比较。我知道这一切都取决于实际查询本身,最后一个词是它们在运行时的配置文件。尽管如此,仍在尝试整理每个查询的内容。 我试图将Q分为两部分 PART-1 -- Hibernate条件和命名查询的基本工作原理: Criteria适用于参数。在运行时,查询不需要解析——有几个搜索和“表单存在”参数,例如对结果进行排序,将它们返回为可滚动的

  • 我有一个在 XML 配置中定义的Hibernate命名查询。 查询会生成一个关于个人人口统计信息的汇总报告。我们住在哪里,那个人可能住在一个省或一个县。 我想知道是否有可能根据hibernate查询参数,按省或县聚合查询。 这是我尝试过的: 参数名称为:groupReportBy。如果我硬编码“省”而不是参数名称,则此查询将起作用,但如果我按照上面显示的方式运行它,则会出现以下错误: 我从Java

  • 问题内容: 谁能指出我如何将order by子句作为命名参数传递给HQL? 有效的示例: 无效的示例: 问题答案: 不支持,只能在and 子句中使用输入参数,并且不能为子句使用参数。或者,如果我改写,您不能对列使用参数,只能对值使用。因此,要么: 有尽可能多的命名查询排序顺序 将排序字符串连接到查询字符串 使用条件查询

  • 问题内容: 我需要检查(从同一张表)基于日期时间的两个事件之间是否存在关联。 一组数据将包含某些事件的结束日期时间,另一组数据将包含其他事件的开始日期时间。 如果第一个事件在第二个事件之前完成,那么我想将它们链接起来。 到目前为止,我有: 然后我加入他们: 然后,可以基于我的validation_check字段运行带有SELECT嵌套的UPDATE查询吗? 问题答案: 您实际上可以通过以下两种方式

  • 问题内容: 数据库中列类型的顺序是否对查询时间有影响? 例如,具有混合顺序(INT,TEXT,VARCHAR,INT,TEXT)的表的查询是否比具有连续类型(INT,INT,VARCHAR,TEXT,TEXT)的表的查询慢? 问题答案: 答案是肯定的,这确实很重要,并且可能很重要,但 通常 并不重要。 所有I / O都在页面级别完成(根据您的操作系统,通常为2K或4K)。行的列数据彼此相邻存储,除