У меня есть запрос nhibernate, который генерирует такой запрос. Я только экстрагируют сценарии примераОптимизация запросов NHibernate
ВЫБОР ID ОТ СОТРУДНИКА ГДЕ EMPLOYEE.NAME = @ P1 и И MANAGER_ID В (@ р2, р3 @, @ р4 ... @ р) и др.
Используя NHprofiler, я нашел, что запрос занимает около 500 мс. Таблица имеет индекс имени и manager_id. Таблица сотрудников составляет около 6 миллионов записей.
Когда запрос имеет только одну запись для поиска в пределах manager_id, например.
ВЫБОР ID ОТ СОТРУДНИКА ГДЕ EMPLOYEE.NAME = @ P1 и И MANAGER_ID В (@ р2), то запрос завершается примерно за 2 секунды.
Следовательно, я попытался разделить этот запрос, используя окончательный запрос и выполнив запрос @n times (n - число pn). Однако производительность для каждого из этих запросов составляет около 400 мс или более.
Там есть эквивалент Storedproc (который имеет, если затем условия для нахождения идентификатора дерева менеджера) и работает намного быстрее ..
Есть ли что-то, что мне не хватает здесь?
Спасибо.
У вас есть надлежащие индексы базы данных? –
да .. его тот же db, что sp и nhibernate бьет ..! – bkhanal