|
![]() |
#1 |
Участник
|
Есть глобальная переменная T1 типа record - MyTable.
Предположим хочу я найти в таблице MyTable запись. Вопрос: есть с точки зрения производительности разница в двух следующих вариантах? Вариант 1: [codebox]T1.SETRRANGE(..) T1.SETCURRENTKEY(..) T1.FIND('-')[/codebox] Вариант 2: [codebox] T1.SETCURRENTKEY(..) T1.SETRRANGE(..) T1.FIND('-')[/codebox] Итак, есть ли разница в каком проядке вызывать SETRANGE и SETCURRENTKEY? Спасибо |
|
![]() |
#2 |
Участник
|
В sql версии нет, т.к движок Nav транслирует код в SQL запрос именно на сроке Find('-') включая фильтры setrange как 'where ...' и ключ setcurrentkey как 'order by ...'
|
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от birdy
![]() Есть глобальная переменная T1 типа record - MyTable.
Предположим хочу я найти в таблице MyTable запись. Вопрос: есть с точки зрения производительности разница в двух следующих вариантах? Вариант 1: [codebox]T1.SETRRANGE(..) T1.SETCURRENTKEY(..) T1.FIND('-')[/codebox] Вариант 2: [codebox] T1.SETCURRENTKEY(..) T1.SETRRANGE(..) T1.FIND('-')[/codebox] Итак, есть ли разница в каком проядке вызывать SETRANGE и SETCURRENTKEY? Спасибо ![]() |
|
![]() |
#4 |
Участник
|
2dmites
Тоже так думаю. 2Forewind Мне интересно, встречал ли кто-нибудь, именно в теории, прямые указания на тот или иной порядок вызова этих функции |
|
![]() |
#5 |
Участник
|
В теории прямого указания лично я не помню, но в примерах раньше всегда и везде шел сначала SETCURRENTKEY, а вот уже в хелпе по FINDSET идет наоборот...
|
|
![]() |
#6 |
Участник
|
Я убежден, что если различия и есть то только в том, как NAV работает со своими внутренними структурами, и они незначительны.
|
|
![]() |
#7 |
Участник
|
![]() Цитата:
Сообщение от birdy
![]() Есть глобальная переменная T1 типа record - MyTable.
Предположим хочу я найти в таблице MyTable запись. Вопрос: есть с точки зрения производительности разница в двух следующих вариантах? Вариант 1: [codebox]T1.SETRRANGE(..) T1.SETCURRENTKEY(..) T1.FIND('-')[/codebox] Вариант 2: [codebox] T1.SETCURRENTKEY(..) T1.SETRRANGE(..) T1.FIND('-')[/codebox] Итак, есть ли разница в каком проядке вызывать SETRANGE и SETCURRENTKEY? |
|
![]() |
#8 |
Участник
|
2RedFox
Загадочный ответ. Может быть правильный, но загадочный - не понял. Массив (в данном случае таблица) в обоих случая отсортирован. Выборка в обоих случаях ведется по отсортированному массиву. |
|
![]() |
#9 |
Участник
|
Цитата:
Цитата:
Массив (в данном случае таблица) в обоих случая отсортирован. Выборка в обоих случаях ведется по отсортированному массиву.
|
|