Разница в производительности в различных запросах Hibernate на столбцах VarChar MsSql - PullRequest
0 голосов
/ 01 июля 2011

У меня есть запрос в спящем режиме, который, по моему мнению, вызван несоответствиями VARCHAR и NVARCHAR в драйвере и MsSql, которые обсуждались здесь Получение Hibernate и SQL Server для приятной игры с VARCHAR и NVARCHAR . Я понимаю, что эта проблема не связана с Hibernate, но меня смущает то, как hibernate работает с кодом ниже.

Когда мы запустили Запросы ниже (используя параметр set и без него) на БД с типом столбца VARCHAR для столбца «код», мы обнаружили, что добавление строки в HQL работает намного быстрее, чем setParameter (или Criteria Query, который должен был быть быстрее, чем HQL).

Query createQuery = session.createQuery("from abc where code='"+substring+"'");
/*Query createQuery = session.createQuery("from abc where   code=:substring");
                createQuery.setParameter("substring","Test");*/
                return createQuery.list();

Пожалуйста, дайте мне знать, как это повлияет.

1 Ответ

0 голосов
/ 01 июля 2011

План выполнения, вычисляемый базой данных, вероятно, отличается между двумя запросами. Подобная проблема описана в этом вопросе , и мой администратор БД уже говорил мне, что такая же проблема может возникнуть и в Oracle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...