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>>]