| imho.ws |
![]() |
|
|
|
# 1 |
|
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Стирание из MS SQL Server
Проблема такая:
Несколько таблиц в базе растут очень большими темпами. Ести программа, которая постоянно удаляет устаревшие записи, но она не успевает за ростом базы. Нужно сделать новую чтобы работала быстрее. Кто-нибудь может предложить способы ускорить этот процесс? Новая программа будет на C#. |
|
|
|
|
# 2 |
|
::VIP::
Регистрация: 19.03.2004
Сообщения: 1 329
![]() ![]() ![]() ![]() |
Что-то не понятно, как так не успевает? Всё происходит в реальном времени что ли? Т.е. куча данных одним процессом пишется в таблицу, а другим удаляется?
Объясни подробнее как всё работает во времени, сколько, когда и чего пишется, когда и как удаляется. |
|
|
|
|
# 3 | |
|
Junior Member
Регистрация: 12.09.2004
Сообщения: 106
![]() ![]() |
Цитата:
А почему именно такая привязка, что следующая программа на C# будет? А какая база (то есть какая структура и какой СУБД вы пользуетесь)? |
|
|
|
|
|
# 6 | ||||
|
Full Member
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Цитата:
Цитата:
Еыть несколько программ, которые постоянно обрабатывают какие-то поступающие данные и пишут в несколько таблиц. Каким образом старая стирающая программа не успевает я даже не в курсе. Там пробовали затирать сразу все устаревшие записи - это заняло целый день и база тогда была гораздо меньше (записи за несколько месяцев). Так что нужно чтобы стирающая программа автоматически через определённое время мроверяла и стирала около тысячи старых записей (чтобы не очень долго). Есть мысль поставить на базе задание, которое раз в день выполняется. Или всётаки программу с вечным циклом писать. Цитата:
Цитата:
|
||||
|
|
|
|
# 7 | |
|
СуперМод
IMHO Консультант 2005-2009 Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отсек
Пол: Male
Сообщения: 14 497
![]() |
Цитата:
Полная очистка таблицы. Вариант (если такое радикальное средство не подходит) - держать 2 таблицы (или больше - по желанию). Обращение из пишущей проги - через алиас таблицы. И drop делать перед переключением алиаса с одной таблицы на другую (тогда отключаемая таблица будет доступна до следущего переключения). Переключение алиаса - по необходимости (хочешь - раз в сутки, хочешь - раз в столетие, хочешь - раз в минуту) средствами СУБД. Или другой вариант: (но требует доработки всех программ): пишущая прога пишет в таблицу Current_month, читающие работают с таблицами Current_month и Previous_month, раз в месяц делается удаление таблицы Previous_month, переименование Current->Previous и создание новой Current (можно, опять же, сделать разбивку хоть по дням, хоть по минутам, но это усложняет процедуру обновления таблиц).
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила! Распространенье наше по планете Особенно заметно вдалеке: В общественном парижском туалете Есть надписи на русском языке В. Высоцкий |
|
|
|