Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
Есть БД, туда пишутся данные с проги асушной, то бышь с датчиков, данных очень много, и БД быстро растёт в размерах. Вопрос, можно ли сделать запись данных в таблицы по кругу, то есть по достижении заданного кол-во строк, ну или размера, данные начали бы писаться опять с первой строки, перезаписывая старые.
Спасибо за ответы!
21 сен 11, 13:28    [11311535]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
Вопрос, можно ли сделать запись данных в таблицы по кругу, то есть по достижении заданного кол-во строк, ну или размера, данные начали бы писаться опять с первой строки, перезаписывая старые.

А просто удалять устаревшие данные ?
21 сен 11, 13:30    [11311557]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
shut-up-and-skate
Member

Откуда: ВАО
Сообщений: 4259
paradiseSBS,

это единственный выход из ситуации?
21 сен 11, 13:30    [11311566]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
shut-up-and-skate,

ПК который держит БД достаточно старый, БД быстро вырастает выше 1гб. Опять же есть БД которую я совсем недавно чистил,там вообще было свыше 20гб. Чистить постоянно не вариант, Данные поступают каждые 1-5 сек.
21 сен 11, 13:34    [11311624]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
shut-up-and-skate
Member

Откуда: ВАО
Сообщений: 4259
paradiseSBS
shut-up-and-skate,

ПК который держит БД достаточно старый, БД быстро вырастает выше 1гб. Опять же есть БД которую я совсем недавно чистил,там вообще было свыше 20гб. Чистить постоянно не вариант, Данные поступают каждые 1-5 сек.


можно легко, нужно хранить в "таблице настроек" curr_row_number, min_row_number и max_row_number например и написать процедуру добавления записи.
21 сен 11, 13:38    [11311657]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
Я новичёк в MS SQL. Буду очень благодарен если обрисуете как примерно реализовать это. В общих чертах. Спасибо.
21 сен 11, 13:43    [11311707]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
Чистить постоянно не вариант, Данные поступают каждые 1-5 сек.

И вы готовы переписать асушную прогу и увеличить время на добавление показаний датчиков ?
21 сен 11, 13:46    [11311735]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
shut-up-and-skate
Member

Откуда: ВАО
Сообщений: 4259
paradiseSBS,

создайте процедуру, входными параметрами которой являются поля таблицы. Сама процедура берет текущее значение curr_row_number и проверяет есть запись с таким номеров в вашей таблице или нет. Если есть - перезаписываем, если нет - добавляем запись. По окончанию работы с записью увеличиваем curr_row_number если он достиг максимально значения - присваиваем ему значение минимального. В нашем случае ограничением curr_row_number являются min_row_number и max_row_number.
21 сен 11, 13:53    [11311811]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Александр Спелицин
Member

Откуда: Из ближайшего подмосковья.
Сообщений: 2517
paradiseSBS
shut-up-and-skate,

ПК который держит БД достаточно старый, БД быстро вырастает выше 1гб. Опять же есть БД которую я совсем недавно чистил,там вообще было свыше 20гб. Чистить постоянно не вариант, Данные поступают каждые 1-5 сек.

1..20GB это отнюдь не критический объем БД. Правда, если сервер БД у вас не 15-и летней давности :)).

paradiseSBS
shut-up-and-skate,
Чистить постоянно не вариант, Данные поступают каждые 1-5 сек.

Ну а Вы их чистите не постоянно каждые 1-5 сек, а например 1 раз в сутки (ночью).
21 сен 11, 14:03    [11311938]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Shakill
Member

Откуда: мск
Сообщений: 1887
paradiseSBS
ПК который держит БД достаточно старый, БД быстро вырастает выше 1гб. Опять же есть БД которую я совсем недавно чистил,там вообще было свыше 20гб. Чистить постоянно не вариант, Данные поступают каждые 1-5 сек.

так вам же не руками предлагают чистить, удаление старых данных можно автоматизировать. например, джобом раз в X часов
21 сен 11, 14:04    [11311961]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
мне кажется даже больше чем 15летней давности. очистка это нагрузка на сервер. данные поступают постоянно в т.ч. и ночью, то что каждую секунду этого трубует технологический процесс, опять же с этой же БД другой ПК могут забирать мгновенные значения с датчиков
21 сен 11, 14:08    [11311998]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
очистка это нагрузка на сервер

А поиск и update существующих записей - это не нагрузка ?
21 сен 11, 14:10    [11312019]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
iljy
Member

Откуда:
Сообщений: 8711
paradiseSBS,

используйте секционированную вьюху, тогда удаление будет мгновенным и практически без нагрузки на сервер.
21 сен 11, 14:13    [11312060]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
используйте секционированную вьюху, тогда удаление будет мгновенным и практически без нагрузки на сервер


А можно подробнее? недавно чистил БД с 78млн строк, немного подустал, чистил ентерпрайз манагером mssql вским 2000.
21 сен 11, 14:16    [11312094]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
недавно чистил БД с 78млн строк, немного подустал, чистил ентерпрайз манагером mssql вским 2000.

вручную что ли ?
21 сен 11, 14:17    [11312103]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
ага , по 500 000 строк выделял, и делитом, всё это делал в сервере 2003, запущенном в VMBox ) Просто надо было срочно, а опыта нет в этом вообще.
21 сен 11, 14:22    [11312157]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
iljy
Member

Откуда:
Сообщений: 8711
paradiseSBS,

http://lmgtfy.com/?q=%D1%81%D0%B5%D0%BA%D1%86%D0%B8%D0%BE%D0%BD%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%BD%D0%B0%D1%8F+%D0%B2%D1%8C%D1%8E%D1%85%D0%B0
21 сен 11, 14:23    [11312168]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
ага , по 500 000 строк выделял, и делитом,

Т.е. вы SQL совсем не знаете что ли ?
21 сен 11, 14:23    [11312174]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
iljy
Member

Откуда:
Сообщений: 8711
paradiseSBS
ага , по 500 000 строк выделял, и делитом, всё это делал в сервере 2003, запущенном в VMBox ) Просто надо было срочно, а опыта нет в этом вообще.

Эммм... Тогда лучше наймте специалиста, иначе асушники потом вас же и вздернут.
21 сен 11, 14:24    [11312183]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
БД весила 20+гб журнал 40+гб , всё это к серверу цеплялось около 10ти часов, вот и чистил хардкорно, чистил только данные с датчиков, структуру не трогал, АСУшники ничего не сделают, сейчас всё цепляется за 5 минут. Просто хотелось немного автоматизировать процесс, а там данные были начиная с 2008 года.
21 сен 11, 14:32    [11312279]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
БД весила 20+гб журнал 40+гб , всё это к серверу цеплялось около 10ти часов, вот и чистил хардкорно, чистил только данные с датчиков, структуру не трогал

Вы знаете такую команду - DELETE ?
21 сен 11, 14:37    [11312354]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
paradiseSBS
Member

Откуда:
Сообщений: 9
Догадываюсь о назначении =)
21 сен 11, 14:38    [11312370]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
Glory
Member

Откуда:
Сообщений: 104751
paradiseSBS
Догадываюсь о назначении =)

Если у вас такие знания по SQL, то лучше https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=882134&msg=11312183
21 сен 11, 14:40    [11312393]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
SanyL
Member

Откуда: Москва
Сообщений: 4540
shut-up-and-skate
paradiseSBS,

создайте процедуру, входными параметрами которой являются поля таблицы. Сама процедура берет текущее значение curr_row_number и проверяет есть запись с таким номеров в вашей таблице или нет. Если есть - перезаписываем, если нет - добавляем запись. По окончанию работы с записью увеличиваем curr_row_number если он достиг максимально значения - присваиваем ему значение минимального. В нашем случае ограничением curr_row_number являются min_row_number и max_row_number.


да уж... а потом мучайся с разбором полученной кучи...
Единственно правильное решение было предложено - старое чистить! Не обязательно это делать руками, можно и скриптик написать...
21 сен 11, 15:12    [11312687]     Ответить | Цитировать Сообщить модератору
 Re: Вопрос по добавлению данных в MS SQL 2000  [new]
shut-up-and-skate
Member

Откуда: ВАО
Сообщений: 4259
SanyL
shut-up-and-skate
paradiseSBS,

создайте процедуру, входными параметрами которой являются поля таблицы. Сама процедура берет текущее значение curr_row_number и проверяет есть запись с таким номеров в вашей таблице или нет. Если есть - перезаписываем, если нет - добавляем запись. По окончанию работы с записью увеличиваем curr_row_number если он достиг максимально значения - присваиваем ему значение минимального. В нашем случае ограничением curr_row_number являются min_row_number и max_row_number.


да уж... а потом мучайся с разбором полученной кучи...
Единственно правильное решение было предложено - старое чистить! Не обязательно это делать руками, можно и скриптик написать...


какая постановка - такой и ответ
21 сен 11, 15:14    [11312700]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить