Оптимальное обновление в наборе результатов на Sybase IQ - PullRequest
0 голосов
/ 28 апреля 2009

Я ищу переписать код, который обновляет таблицу в базе данных Sybase IQ v14 и выполняет следующие действия:

  1. выбирает все записи в таблице и извлекает некоторые данные в файл
  2. обновляет извлеченный в файл флаг для каждой записи в таблице

В настоящее время, когда запись записывается в файл, ее флаг извлечения обновляется. В настоящее время в таблице содержится 40 000 записей, и процесс использует 40 ГБ временного пространства базы данных. Каждая запись в рассматриваемой таблице содержит 60 полей и не более столбцов содержит 120 символов.

Создает ли сервер базы данных новую версию данных для таблицы для каждой записи в таблице и с течением времени, и поэтому мы создаем снежный ком временных данных на сервере базы данных с учетными записями для используемых 40 ГБ? Будет ли лучший метод для обработки данных, чтобы сначала извлечь данные, записать их в файл, а затем выполнить массовое обновление. Так как я понимаю, что Sybase IQ обычно используется на арене, я думаю, что база данных будет оптимизирована для вставки, удаления и выбора, но плохо работает при обновлениях? Будет ли сервер базы данных Sybase IQ работать одинаково на HP-UX и Windows Server 2003.

1 Ответ

1 голос
/ 28 апреля 2009

На самом деле Sybase IQ оптимизирован для чтения (например, OLAP) и не так сильно для активности OLTP. Во время моего собственного тестирования я обнаружил, что получение данных в Sybase IQ заняло больше всего

Самый быстрый способ загрузки данных - использовать команду LOAD TABLE массовая загрузка

...