IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Стирание из MS SQL Server (https://www.imho.ws/showthread.php?t=100022)

EvroStandart 21.02.2006 13:16

Стирание из MS SQL Server
 
Проблема такая:
Несколько таблиц в базе растут очень большими темпами. Ести программа, которая постоянно удаляет устаревшие записи, но она не успевает за ростом базы. Нужно сделать новую чтобы работала быстрее.
Кто-нибудь может предложить способы ускорить этот процесс? :confused:
Новая программа будет на C#.

ЕЖ 21.02.2006 13:28

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

Объясни подробнее как всё работает во времени, сколько, когда и чего пишется, когда и как удаляется.

knight 22.02.2006 02:54

Цитата:

Объясни подробнее как всё работает во времени, сколько, когда и чего пишется, когда и как удаляется.
Поддерживаю !
А почему именно такая привязка, что следующая программа на C# будет?
А какая база (то есть какая структура и какой СУБД вы пользуетесь)?

Willow 22.02.2006 12:00

А нельзя попытаться написать тригеры которые при добавлении новых записей будут определять старые и удалять?

_Lynx_ 22.02.2006 15:52

Действительно, подробности не помешают.
Откуда вообще эти данные берутся?
Точно ли удаляются и нельзя ли переделать исходную программу, которая заводит эти данные. Логику

EvroStandart 22.02.2006 19:16

Цитата:

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

Цитата:

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



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

Цитата:

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

Цитата:

Willow:
А нельзя попытаться написать тригеры которые при добавлении новых записей будут определять старые и удалять?
Трудно сказать. Думали выставлять базе задания. Надо будет обмозговать.

Borland 22.02.2006 21:41

Цитата:

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

ЕЖ 23.02.2006 00:19

Цитата:

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


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

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