Access 2002

55% времени первого теста


В проведенных нами тестах выполнялся следующий код:

Только в первом, более медленном его варианте вызывалась не Left$, a Left. На выполнение кода с функцией Lefts ушло 55% времени первого теста. Поэтому мы рекомендуем всегда пользоваться строковыми функциями с символом "$" в конце. (Просмотрите также полные тестовые процедуры Test 10а и TestlOb в модуле класса OptimizingTests.)

Тест 11: Используйте тип данных Long вместо Variant

По умолчанию VBA назначает всем создаваемым вами переменным тип Variant. Для работы с простыми данными названный тип данных слишком громоздок. Это хоть и универсальная, но большая и сложная, медленно работающая структура, и ее использования по возможности следует избегать. Конечно, это возможно не всегда, но у тех программистов, которые просто ленивы или не понимают, что делают, код работает медленно. (Просмотрите также полные тестовые процедуры Testlla и Testllb в модуле класса OptimizingTests.)

Если вы работаете с данными из таблиц, как правило, вам приходится использовать для них тип данных Variant. Дело в том, что это единственный тип данных, который допускает хранение в переменной значения Null. В таблицах же указанное значение встречается очень часто — обычно оно просто означает, что поле не заполнено, и это вполне допустимо. Кроме того, вы можете даже обнаружить, что использование конкретных типов данных при работе с Jet замедляет выполнение вашего кода. Для взаимодействия с Access Jet всегда использует Variant, и когда вы помещаете данные Jet в переменные конкретных типов, VBA приходится их преобразовывать, что, конечно, требует времени.

Тест 12: По возможности используйте целочисленное деление

В Access имеются два оператора деления: обычный, «/», для операций с плавающей запятой, и целочисленный — «».

Комментарии закрыты