imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 21.02.2006, 13:16     # 1
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Стирание из MS SQL Server

Проблема такая:
Несколько таблиц в базе растут очень большими темпами. Ести программа, которая постоянно удаляет устаревшие записи, но она не успевает за ростом базы. Нужно сделать новую чтобы работала быстрее.
Кто-нибудь может предложить способы ускорить этот процесс?
Новая программа будет на C#.
EvroStandart вне форума  
Старый 21.02.2006, 13:28     # 2
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Что-то не понятно, как так не успевает? Всё происходит в реальном времени что ли? Т.е. куча данных одним процессом пишется в таблицу, а другим удаляется?

Объясни подробнее как всё работает во времени, сколько, когда и чего пишется, когда и как удаляется.
ЕЖ вне форума  
Старый 22.02.2006, 02:54     # 3
knight
Junior Member
 
Регистрация: 12.09.2004
Сообщения: 106

knight Известность не заставит себя ждатьknight Известность не заставит себя ждать
Цитата:
Объясни подробнее как всё работает во времени, сколько, когда и чего пишется, когда и как удаляется.
Поддерживаю !
А почему именно такая привязка, что следующая программа на C# будет?
А какая база (то есть какая структура и какой СУБД вы пользуетесь)?
knight вне форума  
Старый 22.02.2006, 12:00     # 4
Willow
Junior Member
 
Регистрация: 23.12.2003
Адрес: Киев
Сообщения: 118

Willow Реально крут(а)Willow Реально крут(а)Willow Реально крут(а)Willow Реально крут(а)
А нельзя попытаться написать тригеры которые при добавлении новых записей будут определять старые и удалять?
Willow вне форума  
Старый 22.02.2006, 15:52     # 5
_Lynx_
Junior Member
 
Регистрация: 11.10.2005
Сообщения: 63

_Lynx_ Путь к славе только начался
Действительно, подробности не помешают.
Откуда вообще эти данные берутся?
Точно ли удаляются и нельзя ли переделать исходную программу, которая заводит эти данные. Логику
_Lynx_ вне форума  
Старый 22.02.2006, 19:16     # 6
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
knight:
А почему именно такая привязка, что следующая программа на C# будет
Просто пишем на нём.

Цитата:
knight:
какой СУБД
Тема называется "Стирание из MS SQL Server"



Еыть несколько программ, которые постоянно обрабатывают какие-то поступающие данные и пишут в несколько таблиц.
Каким образом старая стирающая программа не успевает я даже не в курсе. Там пробовали затирать сразу все устаревшие записи - это заняло целый день и база тогда была гораздо меньше (записи за несколько месяцев). Так что нужно чтобы стирающая программа автоматически через определённое время мроверяла и стирала около тысячи старых записей (чтобы не очень долго).
Есть мысль поставить на базе задание, которое раз в день выполняется. Или всётаки программу с вечным циклом писать.

Цитата:
_Lynx_:
Точно ли удаляются и нельзя ли переделать исходную программу, которая заводит эти данные. Логику
Удаляются точно. Переделывать нельзя. С начала с этими данными несколько разных приложений работают. А когда запись устарела примерно на месяц, она уже никому не нужна и должна быть стёрта.

Цитата:
Willow:
А нельзя попытаться написать тригеры которые при добавлении новых записей будут определять старые и удалять?
Трудно сказать. Думали выставлять базе задания. Надо будет обмозговать.
EvroStandart вне форума  
Старый 22.02.2006, 21:41     # 7
Borland
СуперМод
IMHO Консультант 2005-2009
 
Аватар для Borland
 
Регистрация: 14.08.2002
Адрес: Московская ПЛ, ракетный отсек
Пол: Male
Сообщения: 14 497

Borland - Гад и сволочь
Цитата:
EvroStandart:
Есть мысль поставить на базе задание, которое раз в день выполняется.
Самое простое, что приходит в голову - это drop table средствами самого SQL Server.
Полная очистка таблицы.
Вариант (если такое радикальное средство не подходит) - держать 2 таблицы (или больше - по желанию). Обращение из пишущей проги - через алиас таблицы. И drop делать перед переключением алиаса с одной таблицы на другую (тогда отключаемая таблица будет доступна до следущего переключения).
Переключение алиаса - по необходимости (хочешь - раз в сутки, хочешь - раз в столетие, хочешь - раз в минуту) средствами СУБД.
Или другой вариант: (но требует доработки всех программ): пишущая прога пишет в таблицу Current_month, читающие работают с таблицами Current_month и Previous_month, раз в месяц делается удаление таблицы Previous_month, переименование Current->Previous и создание новой Current (можно, опять же, сделать разбивку хоть по дням, хоть по минутам, но это усложняет процедуру обновления таблиц).
__________________
Не засоряйте форум "спасибами"! Для выражения благодарности существуют ПС и репутация! Соблюдайте Правила!
Распространенье наше по планете
Особенно заметно вдалеке:
В общественном парижском туалете
Есть надписи на русском языке

В. Высоцкий

Borland вне форума  
Старый 23.02.2006, 00:19     # 8
ЕЖ
::VIP::
 
Регистрация: 19.03.2004
Сообщения: 1 329

ЕЖ Бог с наворотамиЕЖ Бог с наворотами
ЕЖ Бог с наворотамиЕЖ Бог с наворотами
Цитата:
Borland:
Самое простое, что приходит в голову - это drop table средствами самого SQL Server.
Полная очистка таблицы.
Зачам же сразу DROP TABLE, можно же просто TRUNCATE TABLE - быстро и эффективно
ЕЖ вне форума  


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 15:40.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.