|
23.11.2008, 03:52 | #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? Спасибо |
|
23.11.2008, 17:44 | #2 |
Участник
|
В sql версии нет, т.к движок Nav транслирует код в SQL запрос именно на сроке Find('-') включая фильтры setrange как 'where ...' и ключ setcurrentkey как 'order by ...'
|
|
24.11.2008, 09:54 | #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? Спасибо |
|
24.11.2008, 10:41 | #4 |
Участник
|
2dmites
Тоже так думаю. 2Forewind Мне интересно, встречал ли кто-нибудь, именно в теории, прямые указания на тот или иной порядок вызова этих функции |
|
24.11.2008, 11:19 | #5 |
Участник
|
В теории прямого указания лично я не помню, но в примерах раньше всегда и везде шел сначала SETCURRENTKEY, а вот уже в хелпе по FINDSET идет наоборот...
|
|
24.11.2008, 11:57 | #6 |
Участник
|
Я убежден, что если различия и есть то только в том, как NAV работает со своими внутренними структурами, и они незначительны.
|
|
24.11.2008, 15:40 | #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? |
|
24.11.2008, 23:31 | #8 |
Участник
|
2RedFox
Загадочный ответ. Может быть правильный, но загадочный - не понял. Массив (в данном случае таблица) в обоих случая отсортирован. Выборка в обоих случаях ведется по отсортированному массиву. |
|
25.11.2008, 11:10 | #9 |
Участник
|
Цитата:
Цитата:
Массив (в данном случае таблица) в обоих случая отсортирован. Выборка в обоих случаях ведется по отсортированному массиву.
|
|