知识大全 数据读取器[2]
Posted 索引
篇首语:科学的自负比起无知的自负来还只能算是谦虚。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据读取器[2]相关的知识,希望对你有一定的参考价值。
C#高级编程:数据读取器[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
——此文章摘自《C#高级编程(第 版)》定价 元 特价 元 购买假定CategoryID字段是SELECT语句中用于生成阅读器的第一个字段 那么这两行语句的功能就是相同的 但后者比前者慢一些 为了验证这一点 编写一个简单的测试程序 从打开的数据读取器上对同一列进行一百万次的迭代访问 获取一些足够大的数字 虽然在一个循环中可能并不会对同一列访问一百万次 但按每秒来计算 就可能编写出最佳的代码
另外 数字索引器平均每 秒就进行一百万次的访问 而文本索引器则需要 秒 原因是文本方法是从模式的内部查找列号 再使用列号的顺序进行访问 如果知道这个区别 就可以更好地访问数据
是否应使用数字索引器?也许 但还有一种更好的方式
除了上面给出的索引器外 OleDbDataReader还有一组类型安全的方法可以用于读取列 这些方法都可以进行自我解释 且都以Get开头 有一些方法可以读取大多数类型的数据 例如GetInt GetFloat和GetGuid等
前面使用GetInt 的一百万次迭代用了 秒 数字索引器中的系统开销是获取数据类型 调用与GetInt 相同的代码 然后装箱(本实例是拆箱)为一个整数 如果以前知道这种模式 并希望使用加密数字而不是列名 以避免对每个列访问使用类型安全的函数 这样运行速度就会比使用文本格式的列名快 倍(选择同一列的上百万个副本)
在可维护性和速度之间有一个折中的问题 如果必须使用数字索引器 就应在类的范围内为每一个要访问的列定义常量 上面的代码可以用于从任何OLE DB数据库中选择数据 但有许多SQL Server的特定类可以使用 但其便利性有明显的损失
下面的示例与上一示例基本相同 但在这个实例中用SQL提供程序和SQL类的引用替换了OLE DB提供程序和对OLE DB类的所有引用 代码的变化已经突出显示出来了 该示例在 _DataReaderSql目录下 using System; using System Data SqlClient; public class DataReaderSql public static int Main(string[] args) string source = server=(local)\\\\NetSDK; + integrated security=SSPI; + database=northwind ; string select = SELECT ContactName CompanyName FROM Customers ; SqlConnection conn = new SqlConnection(source); conn Open(); SqlCommand cmd = new SqlCommand(select conn); SqlDataReader aReader = cmd ExecuteReader(); while(aReader Read()) Console WriteLine( from aReader GetString( ) aReader GetString( )); aReader Close(); conn Close(); return ;
注意区别是什么?如果键入这些代码 用sql替换所有的OleDb 改变数据源字符串 重新编译 这是很容易的
对Sql提供程序的索引器进行相同的性能测试 这次数字索引器也使用 秒就完成了百万次的访问 基于索引器的字符串运行了 秒 本机的Sql提供程序要比OleDb快 直到我在 NET版本中测试这一部分 情况都是这样 可以肯定这是不正常的 因为我使用的是最简单的测试(对同一个值选择 次) 在托管SQL提供程序上进行真实的测试 会得到更好的性能
cha138/Article/program/net/201311/15404相关参考
ASP.NET数据读取填充方式 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在中读取数据库中的
C#中读取数据库中Image数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! DataRead
asp教程读取数据库教程记录 <% Dpath="liannet/dbaseMateyDBWeb_^%$#@mdb" SetConn=S
Flex与java交互之数据库数据读取 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 前几天有网
ASP讲座之二:读取通过表单发送的数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 学习ASP
C#对数据库的读取,写,更新和删除 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! ●读取数据其中
在VC++应用程序中读取文本数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 我们通常把数据存
c#通过网线读取三菱PLC数据 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! publicsta
硬盘出现“文件或目录损坏且无法读取”!数据恢复问题硬盘出现“文件或目录损坏且无法读取”!开始菜单--运行--输入cmd在弹出的黑色窗口中输入chkdskG:/f回车输入y回车就可以了移动硬盘出现文件或
cha138/Article/program/net/201311/14165