读书人

关于C# 性能的有关问题

发布时间: 2012-01-22 22:38:43 作者: rapoo

关于C# 性能的问题
在VS2005 中 reader[0] 和reader.GetInt32(0) 和reader.GetInt32(reader.GetOrdinal("id"))哪种方法好些,哪种性能快些?
using (SqlConnection con = new SqlConnection(SqlHelper.ConnectionString))
和 SqlConnection con = new SqlConnection(SqlHelper.ConnectionString)
哪个性能快些?

[解决办法]
感觉 reader[0] 和using (SqlConnection con = new SqlConnection(SqlHelper.ConnectionString)) 应该快些吧
期待高手跟进
[解决办法]
using (SqlConnection con = new SqlConnection(SqlHelper.ConnectionString))会调用con.Dispose();
[解决办法]
reader.GetInt32(0)这个速度快,因为这个直接调用方法。
using()这个我就说不好了。
[解决办法]
reader[0]等同月GetValue(0)

reader.GetInt32(0)的效率要高于GetValue(0)
差别在于只做类型检查,而省略了做类型判断的处理

reader.GetInt32(0) 和reader.GetInt32(reader.GetOrdinal("id"))基本相差不大
因为根据列名取索引的时候在内部用hashtable缓存了

需要说明一点的是,每个reader(比如SqlReader和OracleReader)具体实现的方式不同,
所以即使完全一样的代码,如果reader类型不同的话,具体效果也还是有细微差别的

读书人网 >C#

热点推荐