VIN を使用してバッチ ディーラー車両データを実行/処理しているときに、パフォーマンスが非常に遅いことに気付きました。いくつかのベンチマーク テストの後、T-SQL 関数を使用するLEFT
とパフォーマンスが低下しますが、使用しない場合は問題なく動作することがわかりました。
T-SQL 関数を使用LEFT
しないと、1 分間に平均 73 の自動車販売店を利用することになります。しかしLEFT
、私は 1 分間に平均 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())
{
}
}
}