Пакет очистки данных Sybase ASE - дизайн и производительность
Я работаю над утилитой очистки данных Sybase ASE (переход на 15.7), которая будет использоваться несколькими таблицами / базами данных для удаления огромного количества ненужных старых данных.
- После получения имени входной таблицы автоматически определите дочерние таблицы и удалите данные. Но я не смог найти предложение иерархического запроса, подобное предложению Oracle "Connect by .. Prior". Есть ли другой способ реализовать это?
- Я удаляю данные, проходя через несколько транзакций / коммитов небольшими шагами. Через какое время после удалений я должен выполнить "reorg rebuild"?
- Нужно ли обновлять статистику? Если мне нужно, какие критерии я должен рассмотреть перед обновлением статистики?
- Некоторые таблицы могут быть разделены. Что-нибудь, что я должен рассмотреть в перспективе раздела?
- Некоторые из наших БД (я думаю, индекс..?) Сгруппированы. Я не имею большого представления о кластеризации. Нужно ли рассматривать что-либо в перспективе кластеризации?
- Отправить письмо в конце обработки. Похож ли встроенный почтовый пакет на UTIL_SMTP оракула?
1 ответ
Некоторые из пунктов сейчас не заполнены, и я буду их заполнять по мере возможности.
1 - Проверьте этот пост о репликации этой функции в Sybase ASE.
3 - Поскольку обновление статистики может быть выполнено быстрее, чем повторная регистрация (которая также обновляет статистику), иногда она используется для повышения производительности между повторными регистрами. Решение о том, когда их запускать, будет зависеть от того, насколько быстро снижается производительность при выполнении чисток. sp_sysmon - это ценный инструмент, который может собирать метрики, помогающие вам принять решение.
4 - Разделенные таблицы не должны действительно влиять на вашу чистку. Это еще один случай, когда это может повысить производительность ваших удалений, поскольку к данным можно получить доступ быстрее, чем в других конфигурациях.
5 - Не совсем. Теоретически, ваше удаление должно выполняться немного быстрее, если ваше удаление использует кластерный индекс. Кластерные индексы используются для поддержания страниц данных в порядке, когда вставляются записи, а не в кучу вставок.
6 - Для систем на базе Windows можно использовать xp_sendmail. Для систем *nix для доступа к sendmail можно использовать xp_cmdshell. Документация по этим расширенным хранимым процедурам находится здесь.