10 Рекомендацій щодо створення великомасштабного реляційного сховища даних

Рекомендується секціонувати великі таблиці фактів

  • Рекомендується секціонувати таблиці фактів розміром 50-100 ГБ і більше.
  • Секціонування може спростити управління даними і часто призводить до підвищення продуктивності.
    • Швидке, більш детальне супровід індексів
    • Більш гнучкі варіанти резервного копіювання та відновлення.
    • Прискорена завантаження і видалення даних.
  • Прискорення роботи запитів, обмежених однією секцією.
  • Зазвичай таблицю фактів секціонуючою по ключу дати.
    • Дозволяє застосовувати метод ковзного вікна.
  • Дозволяє застосовувати методику «усунення» секцій.

Побудуйте кластерізованний індекс на ключі дати в таблиці фактів

Будьте уважні з вибором фрагмента секціонування

Правильно проектують таблиці вимірювання

Пишіть ефективні запити для усунення секцій

  • Завжди, коли це можливо, використовуйте в предикате запиту (умова WHERE) ключ секціонування (ключ вимірювання дати) таблиці фактів.

Використовуйте для супроводу даних метод ковзного вікна

Завантажуйте вихідні дані ефективним чином

Ефективно видаляйте старі дані

  • Коли можливо, використовуйте перемикання секцій.
  • Якщо потрібно видалити кілька мільйонів рядків з несекціонірованних індексованих таблиць:
    • Не використовуйте конструкцію DELETE FROM ... WHERE ...
      • При цьому виникнуть значні проблеми, пов'язані з блокуваннями і веденням журналів.
      • У разі скасування видалення відкат займе тривалий час.
    • Як правило, більш швидким буде:
      • Вставити записи в неіндексованих таблицю за допомогою інструкції INSERT.
      • Створити індекс (індекси) для таблиці.
      • Перейменувати нову таблицю, щоб вона замінила вихідну.
  • В якості альтернативного способу можна організувати видалення невеликими порціями, циклічно виконуючи інструкціюDELETE TOP (1000) ...; COMMIT
  • В якості ще однієї альтернативи можна помітити рядки як віддалені, а саме видалення відкласти і виконати в період зниженого навантаження.

Керуйте статистикою вручну

  • Статистика по Секціонірованние таблиць ведеться для таблиці в цілому.
  • Після завантаження нових даних оновлюйте вручну статистику по великим таблиць фактів.
  • Після повторного побудови індексу для секції оновлюйте статистику вручну.
  • Якщо статистика оновлюється регулярно, після періодичного завантаження даних, то автоматичне створення статистики (параметр AUTOSTATS) для цієї таблиці можна відключити.
  • Це важливо для оптимізації запитів, при яких може знадобитися читання лише найновіших даних.
  • Також підвищити продуктивність можна, оновлюючи статистику по таблицях вимірів невеликого розміру після додаткової завантаження даних. Щоб отримати більш точні плани запитів, використовуйте параметр FULLSCAN для поновлення статистики за таблицями вимірювання.

Вибирайте ефективні стратегії резервного копіювання