Мы создали модель EF1 поверх устаревшей базы данных SQL.
В этой базе данных есть столбцы с не-юникодными строками. Эти столбцы также используются в качестве ключей.
У нас была проблема с производительностью по одному конкретному запросу. Мы заметили, что EF отправляет параметр как Unicode.
Затем мы переписали эту часть кода для непосредственного запуска оператора SQL и отправили параметр в виде строки, отличной от Юникода.
Разница была следующая:
- С EF: 23000 мс
- Без EF: 90 мс
Похоже, что SQL-сервер берет поле из каждой из 50000 строк, преобразует его в Unicode, чтобы сравнить его с параметром, который отправляется.
Кто-нибудь знает, как заставить EF отправлять параметр в виде строки, не являющейся юникодом? Или любым другим способом исправить это.