ADO.NET 中 DataReader 各种读取方式性能差别 -- 拍砖有分 200
很早就做了这么一个测试,一直没有发布出来,刚才看到 http://community.csdn.net/Expert/TopicView3.asp?id=5696773 中关于 box/unbox 问题,就整理了一下,与大家分享,希望对 .NET 新手而又喜欢嘀咕:“为什么你的程序就是跑我快”的朋友有帮助
限于篇幅,暂时无法讨论各种读取方式适用场景,诸位大虾楼下拍砖吧
~~【拍砖有分】允许,偶也拉风一次哈~~
A.
非官方(^_^)测试结论(以下序号越大,性能越低)
1. DataReader.GetXXX( < <ColumnIndex> > )
2. DataReader.GetXXX(Dictionary <string, int> [ < <ColumnName> > ])
[Dictionary <string, int> .Add( < <ColumnName> > , DataReader.GetOrdinal( < <ColumnName> > ))]
3. DataReader.GetXXX((Int32)Hashtable[ < <ColumnName> > ])
[Hashtable.Add( < <ColumnName> > , DataReader.GetOrdinal( < <ColumnName> > ))]
4. ( < <Type> > )DataReader[ < <ColumnIndex> > ]
5. DataReader.GetXXX(DataReader.GetOrdinal( < <ColumnName> > ))
6. Convert.ToXXX(DataReader[ < <ColumnIndex> > ])
7. ( < <Type> > )DataReader[ < <ColumnName> > ]
8. Convert.ToXXX(DataReader[ < <ColumnName> > ]
------解决方案--------------------好东西,我偷一个~~嘎嘎
------解决方案--------------------狂顶 以前都用的是第8种方法也
------解决方案--------------------顶
------解决方案--------------------学习一下!
------解决方案--------------------lz:
lblHostName.Text = dr[ "hostName "].ToString();和
lblHostName.Text = (string)dr[ "hostName "];和
lblHostName.Text = Convert.ToString(dr[ "hostName "]);
这三个那个性能好呢?
------解决方案--------------------学习楼主
------解决方案--------------------为什么呢?
------解决方案--------------------頂頂頂
------解决方案--------------------顶 楼主辛苦了
------解决方案--------------------顶顶顶顶顶!!!
------解决方案--------------------顶
------解决方案--------------------好东东,顶
------解决方案--------------------有点意思
------解决方案--------------------学习
------解决方案--------------------mark
------解决方案--------------------高效的运行方法是值得一看的!
------解决方案--------------------先顶了再看.
------解决方案--------------------我也去搞个测试。
------解决方案--------------------学习
------解决方案--------------------刚刚在博客园看到了啊
很好
谢谢楼主
给分吧
------解决方案--------------------jf
------解决方案--------------------