Tengo un método simple que devuelve un Nullable Int32 de un DataReader en lugar de un GetInt32 incorporado.C# Ganancia de rendimiento que devuelve un tipo anulable desde un SqlDataReader
Estoy llamando a este método muchas veces y tengo una situación en la que cualquier momento en que pueda afeitarme sería beneficioso.
¿Alguien puede sugerir alguna forma alternativa y más rápida de obtener un Int32 nullable del DataReader?
private Int32? GetNullableInt32(SqlDataReader dataReader, int fieldIndex)
{
return !dataReader.IsDBNull(fieldIndex) ?
dataReader.GetInt32(fieldIndex) : (Int32?)null;
}
Creo que es casi tan bueno como lo que obtendrás. – LukeH
Recuerdo haber leído que la comprobación de IsDBNull era lenta. Esto se ejecuta 5 millones de veces en aproximadamente 2 segundos. También tengo métodos similares para todos los otros tipos. Incluso una ganancia del 10% en este método reducirá el tiempo masivamente. –
@Robin Day Primero buscaría primero otros factores de rendimiento: el porcentaje de ganancia frente al esfuerzo, argumentaría a este respecto, va a ser uno de los más bajos que vea. –