2013-08-14 3 views
-1

Фон: перенос легендарных Excel отчетов проектов в MS Access для самой потребности в структуре базы данных.Сравнение производительности для SWITCH vs IIF?

Ограничение: среда разработки находится в пределах Excel и Access. Из-за больших фрагментов обработки данных и хранения движущихся данных n-Month, он не может позволить себе перебирать записи через набор записей.

выпуск: на текущей платформе отчетов Excel имеется множество подложек, которые используются отдельно для обработки данных. В результате, это привилегия обрабатывать мелкие куски данных, проходя через каждую строку. Условные проверки выполняются с использованием IF-ELSE.

В предлагаемой структуре доступа MS эти IF-ELSE преобразуются в IIF. Учитывая эту ситуацию, хотелось бы узнать мнения о сравнении производительности IIF и SWITCH. Любые лучшие решения приветствуются.

PS: после импорта источника, db автоматически закрывается, чтобы сжимать и ремонтировать, так как он «раздувается». в конце концов, дБ должны быть совместимы как для мс 2003 и 2010 пакетов

+1

Уход за комментариями для Downvote? – bonCodigo

ответ

1

Я думаю, что может быть здесь то, что вы хотите:

Microsoft

Функция Iif возвращает одно из двух значений в зависимости от того, выражение истинно или нет. В следующем выражении используется функция Iif для возврата логического значения True, если значение LineTotal превышает 100. В противном случае он возвращает значение False.

Функция переключателя полезна, когда вы испытываете три или более условия . Функция Switch возвращает значение, связанное с первым выражением в серии, которая оценивает значение true.

+0

Спасибо GianlucaBobbie! Письмо с мобильного я не добавлял ссылок. Ваш ответ подходит для названия вопросов, однако я также хочу услышать другие решения, которые могли бы улучшить текущий дизайн. +1 – bonCodigo

1

Я думаю, что Switch функция VBA (как Nz), а Iif является SQL один. Это имеет большое значение для изучения here, on Allen Browne's site.
Эти функции VBA следует избегать в запросах при работе в архитектуре клиент-сервер (SQL Server/Oracle или аналогичный сервер).

+0

Очень интересное дополнение, я, вероятно, виновен в этом в некоторых запросах. Но вы уверены, что это имеет значение? Если запрос в связанной таблице ODBC использует 'IIf()', делает ли Access или драйвер ODBC это что-то, что может быть оценено на стороне сервера? – Andre

+0

@Andre Я уверен, что 'Iif' правильно переведен ODBC, а Nz - нет. Достаточно легко проверить, есть ли у вас SQL Server с хотя бы одной большой таблицей + 1 другой таблицей, которая может быть связана с ней. С помощью –

Смежные вопросы