Рекомендации по работе с DB2

За время работы накопилось некоторое количество рекомендаций, с которыми я хочу сейчас с Вами поделиться:
- Используйте DB2 views вместо прямой работы с таблицами.
- Не используйте SELECT * в программах, вычитываейте только необходимые поля.
- Избегайте использования dinamic SQL если это возможно
- Не прячьте исполняемый код в includes. Код должен присутствовать только в программных модулях.
- Используйте DB2 includes, которые были сгенерированы при помощи страндартных средств DB2
- Переменные, которые іспользуются до доступа к DB2 должны иметь такую же длину и тип, как и соответствующие поля DB2 таблиц.
- Избегайте использования JOIN DB2 tables в программах. Исключение - batch программы, запускаемые заданием.
- Никогда не соеденяйте более двух таблиц в программах. Исключение - batch программы, запускаемые заданием.
- Доступ к таблицам следует производить, используя индексы.
- Старайтесь указывать полный Primary Key в WHERE части запроса. Исключение составляют таблицы, у которых менее 10 тысяч записей.
- Если Вы вычитываете поле, которое может быть NULL, обязательно проверяйте значение индикаторной переменной для этого поля.
- Используйте возможности DB2, чтобы работать с DATE/TIME:

   DCL W_DATE1        CHAR      (10)  ; /* WORKING DATE CHAR */
   DCL W_DATE2        CHAR      (10)  ; /* WORKING DATE CHAR */
    EXEC SQL
    SET :W_DATE2 = CHAR(DATE(:W_DATE1) + 2 MONTH,ISO);
    SELECT (SQLCODE);
          WHEN(0);
          OTHER
             DO;
                ERROR-HANDLING
             END;
       END; 

- Производите вычисления выражений заранее. Например, вместо
WHERE data1 < current DATE - 1 month   

лучше использовать
WHERE data1 < :data1

Где значение переменной data1 было предварительно расчитано, как в примере выше
- Использование COMMIT/CHECKPOINT:
в BATCH заданиях - каждые 5 минут.
В BMP и MPP - после каждой логической транзакции.
- Используйте FOR READ ONLY WITH UR всегда, когда это возможно.

Отправить комментарий

  • Доступны HTML теги: <b> <i> <u> <br> <hr> <div> <span> <code> <pre>
  • Строки и параграфы переносятся автоматически.
  • You can enable syntax highlighting of source code with the following tags: <code>, <pli>.

Подробнее о форматировании

  _  _     _____ 
| || | |___ |
| || |_ / /
|__ _| / /
|_| /_/
Enter the code depicted in ASCII art style.