ArkaIIIa, если это виртуальный тотализатор - ставлю на вторую. Потому что во второй мы используем всего 2 встроенные функции, оптимизированные на низшем уровне. А в первой - у нас 3 функции и 3 логических действия.
ArkaIIIa, если это виртуальный тотализатор - ставлю на вторую. Потому что во второй мы используем всего 2 встроенные функции, оптимизированные на низшем уровне. А в первой - у нас 3 функции и 3 логических действия.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Rioran Да у коллеги просто увидел файлик, там формула состоит из пары десятков таких "если". Мне, в принципе, пофиг, но стало любопытно, а не быстрее ли будет отрабатывать индекс, файл то и так перегружен данными.
Rioran Да у коллеги просто увидел файлик, там формула состоит из пары десятков таких "если". Мне, в принципе, пофиг, но стало любопытно, а не быстрее ли будет отрабатывать индекс, файл то и так перегружен данными.ArkaIIIa
Зависит от данных. Каскад ЕСЛИ быстрее в случае, когда вычисления чаще обрезаются последующими каскадами. Во многих случаях ЕСЛИ более предпочтительна. Иногда в связке ЕСЛИ/ИНДЕКС ПОИСКПОЗ - перебор диапазона в поисках значения, ЕСЛИ - проверка условий.
Зависит от данных. Каскад ЕСЛИ быстрее в случае, когда вычисления чаще обрезаются последующими каскадами. Во многих случаях ЕСЛИ более предпочтительна. Иногда в связке ЕСЛИ/ИНДЕКС ПОИСКПОЗ - перебор диапазона в поисках значения, ЕСЛИ - проверка условий.vikttur
Сообщение отредактировал vikttur - Пятница, 17.07.2015, 16:52
Провёл тестирование. Создал таблицу на 500 тысяч строк, отформатировал как таблицу, в первой строке в третьем столбце формула. В первых двух столбцах единички. По нажатию секундомера формула протягивается с первой строки до 500'000-й. 3 замера на каждую формулу. Результаты:
Первая формула: 16 сек, 9 сек, 12 сек Вторая формула: 11 сек, 6 сек, 8 сек
Вторая статистически выигрывает где-то на треть.
***
Конечно, результаты могут быть аппаратно-зависимыми, поэтому предлагаю просто ориентироваться на соотношение скоростей, а не точное кол-во секунд.
Провёл тестирование. Создал таблицу на 500 тысяч строк, отформатировал как таблицу, в первой строке в третьем столбце формула. В первых двух столбцах единички. По нажатию секундомера формула протягивается с первой строки до 500'000-й. 3 замера на каждую формулу. Результаты:
Первая формула: 16 сек, 9 сек, 12 сек Вторая формула: 11 сек, 6 сек, 8 сек
Вторая статистически выигрывает где-то на треть.
***
Конечно, результаты могут быть аппаратно-зависимыми, поэтому предлагаю просто ориентироваться на соотношение скоростей, а не точное кол-во секунд.Rioran
Роман, Москва, voronov_rv@mail.ru Яндекс-Деньги: 41001312674279
Сообщение отредактировал Rioran - Пятница, 17.07.2015, 16:54
Аналогично. 3220950 штук взимозависимых формул. ИНДЕКС отработал за минуту, ЕСЛИ думает уже минут 5, а градусник только наполовину. Кучу ЕСЛИ обычно делают те, кто пока не очень хорошо ориентируется в других формулах. Хотя, согласен с Виктором, бывают ситуации, когда каскад очень значительно улучшает скорость работы. Но в формулах-то мы смотрим не только на скорость работы, но и на легкость написания и правки и на ошибкоустойчивость по человеческому фактору. Когда ЕСЛИ много, в них легко запутаться и их тяжело править при изменении условий.
Аналогично. 3220950 штук взимозависимых формул. ИНДЕКС отработал за минуту, ЕСЛИ думает уже минут 5, а градусник только наполовину. Кучу ЕСЛИ обычно делают те, кто пока не очень хорошо ориентируется в других формулах. Хотя, согласен с Виктором, бывают ситуации, когда каскад очень значительно улучшает скорость работы. Но в формулах-то мы смотрим не только на скорость работы, но и на легкость написания и правки и на ошибкоустойчивость по человеческому фактору. Когда ЕСЛИ много, в них легко запутаться и их тяжело править при изменении условий._Boroda_