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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 30.06.2014, 13:59   #1  
zuzka is offline
zuzka
Участник
Аватар для zuzka
 
131 / 10 (1) +
Регистрация: 29.07.2013
Наткнулся на описание работы ключей в NAV2009 на MSDN: MSDN.
Конкретно заинтересовало следующее:

The table could have these keys.

Код:
Entry No.
Country/Region Code, Customer No.,Posting Date
The query could look like the following.

Код:
SETCURRENTKEY("Country/Region Code","Customer No.");
SETRANGE("Customer No.",'1000');
IF FIND('-') THEN
REPEAT
UNTIL NEXT = 0;
SQL Server will not be able to answer this query efficiently and will read through the entire table. This is because SQL Server makes stricter demands than Classic Database Server on the way that keys are defined in tables and on the way they are used in queries. You should define your keys and queries with SQL Server in mind, as this will ensure that your application can run just as efficiently on both server options.

Получается в итоге: в составном ключе 3 поля, в запросе SETCURRENTKEY их всего 2, SQL проигнорирует этот ключ и будет использовать первичный???
Почему интересует этот момент - не раз замечал добавление полей во вторичные составные ключи, и ни разу при этом изменения в SETCURRENTKEY не касались более 1 запроса, а их по коду довольно большое количество. Может кто-нибудь разбирался в данном вопросе? Интересует конкретно работа в NAV2009 R2.

UPD:
Профайлер SQL не показывает ничего касательно SETCURRENTKEY (есть он в запросах либо нет, итогово идет SELECT без указания ключа) - попробую еще перепроверить, но кажется именно так...
__________________
Как только вы проиграете, все ваши прошлые победы забудут.
Старый 30.06.2014, 14:32   #2  
zuzka is offline
zuzka
Участник
Аватар для zuzka
 
131 / 10 (1) +
Регистрация: 29.07.2013
UPD2:
UPD1 некорректен - профайлер прятал кусок запроса)))

Немного неправильно понял суть. В примере сортировка идет по номеру клиента, а ключ изначально выставляется по регион/страна - т.е. выборка должна строго соответствовать полям ключа... Если я правильно понял))) Ковыряю дальше.
__________________
Как только вы проиграете, все ваши прошлые победы забудут.
 

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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