在使用 VIN 执行/处理批量经销商车辆数据时,我注意到性能非常缓慢。经过一些基准测试,我发现如果我使用 T-SQL 函数LEFT
,性能会受到影响,但如果我不使用它,它可以正常工作。
如果没有 T-SQL 函数LEFT
,我最终平均每分钟有 73 个汽车经销商。但是LEFT
,我最终平均每分钟有 5 或 6 个汽车经销商。
那么问题是什么,我的解决方法是什么?谢谢。
using (var dbConnection = new SqlConnection(this._dbConnectionString))
{
using (var dbCommand = dbConnection.CreateCommand())
{
sqlAsk = "";
sqlAsk += " SELECT Year, Make, Model, Style AS Trim, Squish_Vin AS SquishVin, '' AS VehicleId FROM ED_SQUISH_VIN_V3_90 ";
//@@sqlAsk += " WHERE @parmVehicleSquishVin = Squish_VIN ";
sqlAsk += " WHERE @parmVehicleSquishVin LIKE LEFT(Squish_VIN, 9) ";
dbCommand.CommandText = sqlAsk;
dbCommand.Parameters.Clear();
dbCommand.Parameters.Add("@parmVehicleSquishVin", SqlDbType.VarChar, 10, "Squish_VIN").Value = squishVin;
if (dbConnection.State == ConnectionState.Open) { dbConnection.Close(); }
dbConnection.Open();
using (var dbReader = dbCommand.ExecuteReader())
{
}
}
}