AXForum  
Вернуться   AXForum > Microsoft Dynamics NAV > NAV: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.12.2004, 14:45   #1  
Wizard_imported is offline
Wizard_imported
Участник
 
157 / 10 (1) +
Регистрация: 25.11.2004
Благо перед праздниками удалось выкроить свободного времени, провел ревизию своего утверждения про функцию ISEMPTY.
При её вызове Навижен генерит запрос вида
Код:
SELECT TOP 1 NULL FROM TABLE WHERE FIELD1=@P1
в отличие от FIND, при вызове которой запрос выгядит примерно вот так
Код:
SELECT TOP 1 * FROM TABLE WHERE FIELD1=@P1 ORDER BY <CURRENTKEY FIELDS>
Собственно именно об этой звездочке и об ORDER BY я и говорил, призывая не использовать FIND для проверки набора данных на пустоту.
select TOP 1 NULL свободен от этих недостатков, и в смысле использования индексов работает аналогично COUNT, но, конечно, ограничивается первой попавшейся записью в индексе и концептуально лучше.
К своему сожалению я не могу сейчас повторить ситуацию, в которой на моей базе COUNT был лучше чем ISEMPTY, поэтому:
1. Снимаю свои призывы использовать COUNT
2. Оставляю в силе рекомендацию не использовать FIND
3. Предлагаю использовать ISEMPTY
4. На мой взгляд проводить эксперименты с производительностью лучше не на тестовых примерах а на собственных данных, от их организации и наполнения многое зависит.
5. Посыпать голову пеплом пока не буду, поскольку было такое... ("у меня все ходы записаны" (С), профайлер запускался и результаты запротоколированы, ошибки не было). Повторится ситуация - отпишу обязательно.

Модератору: на мой взгляд, обсуждение использования COUNT лучше вынести в отдельную тему форума, начиная с моей фразы "Но я не об этом, вот о чем:"
PS. tyrex'у - респект за неравнодушное отношение.
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 04:16.