Re: OFF: Ded! С днем Рождения!

2008-09-23 Пенетрантность Alexey Kovyazin
Запоздало присоединяюсь. С Днем Рождения!

Главное здоровья, отдыхать почаще, ну и не забывать про эмерджентность
бытия сконцентированную в данном виртуальном сообществе!

С уважением,
Алексей Ковязин

On 22 сент, 14:28, Ded [EMAIL PROTECTED] wrote:


фрагментация бд

2008-09-23 Пенетрантность Alexey Voytsehovich


Всем доброго дня. Наверное всех уже достал, но вопрос все равно пока еще не 
решен.

Есть БД, в ней таблица величиной около 7 гигабайт. Внутри хранятся данные 
обратным сроком на 7 дней назад. Такой формат обусловлен ТЗ, изменить ничего не 
получится - уже пробовали.


В течение дня в базу добавляется данных примерно на 1 гигабайт, и тот же самый 1 
Гб удаляется ночью (все данные старше 7 дней)


соответственно примерно за неделю фрагментация получается просто дикая, что 
подтверждается длительным временем сборки мусора в бд.


возможно ли каким то образом работать с ФБ (внешние таблицы, хитрые хранимки, 
данные не удалять, а апгрейдить) чтобы избежать данной фрагментации, а, 
соответственно, серьезного замедления обслуживающих бд операций.


Заранее спасибо.

ЗюЫю
точные данные по времени операций в различных конфигурациях (отключенные 
индексы, пересозданные, после b\r операции) подготавливаются. Этот пост для 
затравки темы и сборки идей что еще проверить.




Re: ������������ ��

2008-09-23 Пенетрантность Oleg Matveyev

åÓÌÉ 7 ÄÎÅÊ ÚÁÛÉÔÏ × ôú,

ÔÏ ÚÁÛÉÔØ × âä 7 ÔÁÂÌÉÃ - ÐÏ ÏÄÎÏÊ ÎÁ ÄÅÎØ :-)
ÉÍÅÎÁ ÔÁÂÌÉÃÁÍ ÄÁÔØ ÆÉËÓÉÒÏ×ÁÎÎÙÅ, ÎÁËÒÕÔÉÔØ ÎÁ ÎÉÈ ×ØÀÈ...

ÒÁÚ × ÄÅÎØ ÏÄÎÕ ÔÁÂÌÉÃÕ ÐÅÒÅÓÏÚÄÁ×ÁÔØ.






Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 14:37, Oleg Matveyev wrote:

Если 7 дней зашито в ТЗ,

то зашить в БД 7 таблиц - по одной на день :-)
имена таблицам дать фиксированные, накрутить на них вьюх...

раз в день одну таблицу пересоздавать.


то есть алгоритм таков
создали 7 внешних таблиц
создали view имитирующий таблицу (сборку из 7 внешних)
когда надо удалить одну из таблиц (стоп а нафиг ее удалять? может просто из нее 
данные удалить)?

удалили view
пересоздали внешнюю таблицу
создали view
в нашем коде предусмотреть момент чтоб когда не находил таблицу, не падал.

Сразу вопрос. есть хранимка, которая пользуется данными из этой view, 
соответственно пересоздаваться все будет оч трудно?


ща попробую удалить из внешней данные. что получится.



Re: ������������ ��

2008-09-23 Пенетрантность Oleg Matveyev

 òî åñòü àëãîðèòì òàêîâ
äà, êàê-òî ñëîæíî ïîëó÷àåòñÿ :-)

 ñîçäàëè 7 âíåøíèõ òàáëèö
õìì... ÿ âîîáùå-òî íå èìåë ââèäó âíåøíèå òàáëèöû.

õîòÿ ñî âíåøíèìè òàáëèöàìè âàðèàíò èíòåðåñíûé. óæå óïîìèíàëîñü.
Îñòàíîâèòü FB, è ôàéë óäàëèòü, è ñîçäàòü íîâûé, ïóñòîé.

íî òîãäà ïðèéäåòñÿ îáõîäèòñÿ áåç èíäåêñîâ...







Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 14:59, Oleg Matveyev wrote:

то есть алгоритм таков

да, как-то сложно получается :-)

а шо делать



создали 7 внешних таблиц

хмм... я вообще-то не имел ввиду внешние таблицы.

а другие ведь все равно будут делать фрагментацию?


хотя со внешними таблицами вариант интересный. уже упоминалось.
Остановить FB, и файл удалить, и создать новый, пустой.

можно и без остановки ФБ. удаляется таблица на лету.


но тогда прийдется обходится без индексов...

помучаюсь пока без них. проверю на скорости.

вот тогда не знаю, как поступать с view которая может ссылатся на удаляемую 
внешнюю таблицу. пересоздавать всё?




Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 15:20, Alexey Voytsehovich wrote:

хотя со внешними таблицами вариант интересный. уже упоминалось.
Остановить FB, и файл удалить, и создать новый, пустой.

можно и без остановки ФБ. удаляется таблица на лету.
поторопился. удалятся то удаляется. логически. но данные все равно остаются. 
точно придется еще и физический файл грохать. в общем буду читать и искать.




Re: ������������ ��

2008-09-23 Пенетрантность Oleg Matveyev

 ïîòîðîïèëñÿ. óäàëÿòñÿ òî óäàëÿåòñÿ. ëîãè÷åñêè. íî äàííûå âñå ðàâíî 
 îñòàþòñÿ. òî÷íî ïðèäåòñÿ åùå è ôèçè÷åñêèé ôàéë ãðîõàòü. â îáùåì áóäó 
 ÷èòàòü è èñêàòü.

êàê ðàç â äàííîì ñëó÷àåå òåáå ïðîùå òîëüêî ôàéë óäàëèòü.
à òàáëèöó â áä íå òðîãàòü.
òîëüêî ïðîöåññ FB áóäåò ôàéë óäåðæèâàòü - ïðèäåòñÿ åãî îñòàíàâëèâàòü.
âîçìîæíî ýòî â òâîåé ñèñòåìå 24*7 - õîòü íà ïàðó ìèíóò? 





Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 15:28, Oleg Matveyev wrote:

поторопился. удалятся то удаляется. логически. но данные все равно
остаются. точно придется еще и физический файл грохать. в общем буду
читать и искать.


как раз в данном случаее тебе проще только файл удалить.
а таблицу в бд не трогать.
только процесс FB будет файл удерживать - придется его останавливать.
возможно это в твоей системе 24*7 - хоть на пару минут?


оч. нежелательно. желающих общатся  с бд много. и не всех можно 
проконтролировать. может что разработчики посоветуют? а то рук-во услышало про 
сегментирование в взрослых субд, теперь компосирует мне мозги.




Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Vlad Khorsun


Oleg Matveyev ...


поторопился. удалятся то удаляется. логически. но данные все равно остаются. точно придется еще и физический файл грохать. в 
общем буду читать и искать.


как раз в данном случаее тебе проще только файл удалить.
а таблицу в бд не трогать.
только процесс FB будет файл удерживать - придется его останавливать.
возможно это в твоей системе 24*7 - хоть на пару минут?


   2.1 отпускает файл как только все запросы к нему освобождены.

   Т.е. если нет процедур\триггеров, обращающихся ко внешним таблицам,
то останавливать FB не нужно.

--
Хорсун Влад 





Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 15:50, Vlad Khorsun wrote:



2.1 отпускает файл как только все запросы к нему освобождены.

у меня даже 2.5 :)


Т.е. если нет процедур\триггеров, обращающихся ко внешним таблицам,
то останавливать FB не нужно.



может посоветуешь как мне тогда решить проблему с view (в которой будут 
объединены данные из 7 внешних таблиц, по таблице на день)?


то есть я буду создавать к примеру 7 внешних таблиц, в них будут данные. когда 
наступает 8-й день мне необходимо таблицу в которой данные на минус седьмой день 
удалить, а в новую начать писать, и чтобы после (или перед) удалением минус 
седьмой таблицы view уже работала с новым набором таблиц.


на view будут ссылаться триггера. поэтому просто её удалить не получится, а 
можно ли будет изменить?




Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Vlad Khorsun


Alexey Voytsehovich ...


может посоветуешь как мне тогда решить проблему


   Пока PS (из первого поста) не опишешь - никаких вразумительных советов
быть просто не может.

--
Хорсун Влад 





Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность PEAKTOP
 у меня даже 2.5 :)

Запомним это.


 может посоветуешь как мне тогда решить проблему с view (в которой будут
 объединены данные из 7 внешних таблиц, по таблице на день)?

 то есть я буду создавать к примеру 7 внешних таблиц, в них будут данные. когда
 наступает 8-й день мне необходимо таблицу в которой данные на минус седьмой 
 день
 удалить, а в новую начать писать, и чтобы после (или перед) удалением минус
 седьмой таблицы view уже работала с новым набором таблиц.

 на view будут ссылаться триггера. поэтому просто её удалить не получится, а
 можно ли будет изменить?

1) Тут кто-то обещал возможность CREATE VIEW из PROCEDURE. Сам не
проверял, но вроде должно.
2) В процедуре можно воспользоваться EXECUTE STATEMENT. В триггерах на
VIEW - тоже.

Идея в общем такая: семь баз по дням недели. Демон (LINUX) или сервайс
(Windows), который эти самые базы создает и, соответственно, убивает
уже ненужные. В базах - одна и та же таблица, а выборка - через CROSS-
DATABASE запросы оператора EXECUTE STATEMENT. Фрагментация баз при
этом уменьшается.

--
З.Ы. Ну как, сдал я экзамен на прокто-стоматолога ? :)

unavailable database

2008-09-23 Пенетрантность Dmitry Kotelnikov

Приветствую Вас,

У клиента Firebird 1.5.3, я уже писал что я делаю репликацию
(репликация своя) то на сетевом протоколе идут значительные задержки
на локальном таких проблем нет, я использовал утилиту
http://half-open.com/home_ru.htm и у меня проблема пропала но у
клиента по его словам все-равно проблема. Т.к. тема как часто тут
бывает переросла в стеб и флейм, я не нашел решения и решил перейти к
локальному протоколу для репликации, но у клиента начала появляться
ошибка unavailable database. Кстати когда-то давно такое было уже у
пару клиентов почему и переделал репликацию на сетевой протокол, но я
ни разу не смог отловить). Я у себя ставил на виртуалки и на 98 и XP
и ни разу не смог повторить проблему.
Вычитал в FAQ:
*
клиентская часть не поддерживает локальный протокол вообще
такое бывает. Например, в Firebird 1.5.1 for Windows, Classic.
*
Скажите как это бывает? И почему бывает и не бывает? Т.е. я так
понимаю либо клиентская часть не поддерживает локальный протокол либо
поддерживает, а бывает это значит проблема не в этом, а в другом.
Подскажите куда еще можно взглянуть почему клиент схватывает ошибку
unavailable database, а я ну сколько уже не пробовал не могу
повторить ошибку и все, может это от каких-то особенных настроек
Windows, сети, возможно каике-то обновления Windows влияют, куда хоть
копать?

-- 
С Уважением, Дмитрий Котельников



Re: ������������ ��

2008-09-23 Пенетрантность Oleg Matveyev


наступает 8-й день мне необходимо таблицу в которой данные на минус 
седьмой день удалить, а в новую начать писать, и чтобы после (или перед) 
удалением минус


идею пойми:
ненадо DROP TABLE

просто отсоединяются все, кто к таблицам внешним обращался (напрямую, или 
через вью/процедуры),
_удаляешь_файл_ (сам, средствами ОС) в котором были данные таблицы (еще раз: 
DROP TABLE ненадо),

при обращении во внешнюю таблицу увидишь, что она пустая.
(вот только непомню, надо ли самому создать файл нулевой длины, или FB сам 
это сделает)


А вообще конечно, ждем подробной инфо.
Может геморрой не стоит свеч (с)




Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Кузнецов Евгений


Доброго времени суток!

PEAKTOP пишет:

Идея в общем такая: семь баз по дням недели. Демон (LINUX) или сервайс
(Windows), который эти самые базы создает и, соответственно, убивает
уже ненужные. В базах - одна и та же таблица, а выборка - через CROSS-
DATABASE запросы оператора EXECUTE STATEMENT. Фрагментация баз при
этом уменьшается.


Отлично, заодно и протестирует :)
Действительно, 7 БД по дням недели + 1 управляющая БД, хранящая всю 
логику и сведения об остальных. А проблему блокировки старых данных 
можно решить через shutdown.


Интересно, кстати, CROSS-DATABASE запросы в SuperClassic будут 
выполняться в другом процессе?




--
З.Ы. Ну как, сдал я экзамен на прокто-стоматолога ? :)


5, давайте зачетку :)

--
С уважением, Евгений



Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Кузнецов Евгений


Кузнецов Евгений пишет:
Действительно, 7 БД по дням недели + 1 управляющая БД, хранящая всю 
логику и сведения об остальных. А проблему блокировки старых данных 
можно решить через shutdown.


Тут, правда, некоторая проблема с алиасами возникает - либо их нужно 
динамически перезначать, либо от них вовсе отказаться и соединяться с 
полным путем к БД.


--
С уважением, Евгений



Re: фрагментация бд

2008-09-23 Пенетрантность Ded


Alexey Voytsehovich wrote:

В течение дня в базу добавляется данных примерно на 1 гигабайт, и тот же 
самый 1 Гб удаляется ночью (все данные старше 7 дней)


  Ночью - это типа майнтенанс тайм, без юзеров? Тогда отчего бы тут же 
не зашатдаунить базу и не свипануть? Не должно по-моему без залипших 
долгоиграющих транзакций долго идти, разумеется если нет индексов по 
булевским полям на этой таблице :) В гигах я как-то не считал, а 
мильёнчик записей из 10-миллионной ГБК грохнуть и перепровести мне не 
так чтоб частенько, но приходится, и без всякого дискомфорта, дольше 5 
минут свип ни разу не летал.


--
Regards. Ded.



Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Vlad Khorsun


Кузнецов Евгений ...


Доброго времени суток!

PEAKTOP пишет:

Идея в общем такая: семь баз по дням недели. Демон (LINUX) или сервайс
(Windows), который эти самые базы создает и, соответственно, убивает
уже ненужные. В базах - одна и та же таблица, а выборка - через CROSS-
DATABASE запросы оператора EXECUTE STATEMENT. Фрагментация баз при
этом уменьшается.


Отлично, заодно и протестирует :)
Действительно, 7 БД по дням недели + 1 управляющая БД, хранящая всю логику и сведения об остальных. А проблему блокировки старых 
данных можно решить через shutdown.


   Зачем ? Положить имена известных БД в таблицу. Туда же - дата заливки данных.
По идее старые БД не должны быть никогда и никем использованы. Время от времени
удалять старые записи и, соответственно, удалять эти БД. А ещё лучше - не 
удалять БД,
а делать в них RECREATE таблицам и использовать повторно.


Интересно, кстати, CROSS-DATABASE запросы в SuperClassic будут выполняться в 
другом процессе?


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

--
Хорсун Влад 





Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Кузнецов Евгений


Доброго времени суток!

Vlad Khorsun пишет:
   Зачем ? Положить имена известных БД в таблицу. Туда же - дата заливки 
данных.

Согласен.

По идее старые БД не должны быть никогда и никем использованы. 


В принципе, да. Но когда я предлагал хранить ежедневные данные в 
отдельных таблицах, и циклически их удалять через DROP TABLE, возникла
проблема - как обеспечить монопольный доступ к таблице, чтобы выдернуть 
ее из под носа у читающего клиента и гарантированно удалить? Вроде бы 
Shutdown для этого достаточно хорошо подходит.


Время от

времени
удалять старые записи и, соответственно, удалять эти БД. А ещё лучше - 
не удалять БД,

а делать в них RECREATE таблицам и использовать повторно.
А будет ли разница - в одной БД хранить эти таблицы или в нескольких, 
если идет только вставка и удаление/пересоздание таблиц?




Интересно, кстати, CROSS-DATABASE запросы в SuperClassic будут 
выполняться в другом процессе?


   На тот же хост с тем же портом - не будут. Если же использовать 
локальный

коннект, то это будет embedded соединение.

Интересно, а почему было выбрано именно embedded, а не XNET?

P.S.
По предыдущему вопросу - после конференции стучаться?
--
С уважением, Евгений



Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 20:20, Vlad Khorsun wrote:


Зачем ? Положить имена известных БД в таблицу. Туда же - дата заливки
данных.
так и думал. а еще думал данные отдавать с хранимки по одной, константной бд, 
которая будет динамически строить и выполнять запросы к другим бд.

По идее старые БД не должны быть никогда и никем использованы. Время от
времени
удалять старые записи и, соответственно, удалять эти БД. А ещё лучше -
не удалять БД,
а делать в них RECREATE таблицам и использовать повторно.


а так как таблица будет одна на бд, то и фрагментации не будет. гуд.



Re: фрагментация бд

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 19:35, Ded wrote:


Alexey Voytsehovich wrote:


В течение дня в базу добавляется данных примерно на 1 гигабайт, и тот
же самый 1 Гб удаляется ночью (все данные старше 7 дней)


Ночью - это типа майнтенанс тайм, без юзеров? Тогда отчего бы тут же не
зашатдаунить базу и не свипануть? Не должно по-моему без залипших
долгоиграющих транзакций долго идти, разумеется если нет индексов по
булевским полям на этой таблице :) В гигах я как-то не считал, а


опа. насчет индексов. при сборке мусора индекс пересчитывается на каждую 
операцию (или какой то блок), и, если индексы корявые, а данных много - то 
тормозить может не по детски?




Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Vlad Khorsun


Кузнецов Евгений ...


Доброго времени суток!

Vlad Khorsun пишет:

   Зачем ? Положить имена известных БД в таблицу. Туда же - дата заливки данных.

Согласен.


По идее старые БД не должны быть никогда и никем использованы.


В принципе, да. Но когда я предлагал хранить ежедневные данные в отдельных таблицах, и циклически их удалять через DROP TABLE, 
возникла
проблема - как обеспечить монопольный доступ к таблице, чтобы выдернуть ее из под носа у читающего клиента и гарантированно 
удалить? Вроде бы Shutdown для этого достаточно хорошо подходит.


   После добавления в таблицу с перечнем БД новой даты, новые запросы будут
использовать свежие 7 дат (БД), а старые запросы со временем завершатся. В
этот момент можно очищать старые (старую 8-ю) БД.


Время от

времени
удалять старые записи и, соответственно, удалять эти БД. А ещё лучше - не 
удалять БД,
а делать в них RECREATE таблицам и использовать повторно.

А будет ли разница - в одной БД хранить эти таблицы или в нескольких, если идет 
только вставка и удаление/пересоздание таблиц?


   Несколько таблиц в одной внешней БД - те же фаберже, что и несколько
таблиц в локальной БД ;)


Интересно, кстати, CROSS-DATABASE запросы в SuperClassic будут выполняться в 
другом процессе?


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

Интересно, а почему было выбрано именно embedded, а не XNET?


   Так само получилось ;) Если подумать, то окажется, что так и должно
быть, сетевой слой тут лишний.


P.S.
По предыдущему вопросу - после конференции стучаться?


   Угу. Там есть проблема, но сходу она не разрешилась. Я сам постучу :)

--
Хорсун Влад 





Re: фрагментация бд

2008-09-23 Пенетрантность Vlad Khorsun


Alexey Voytsehovich ...

опа. насчет индексов. при сборке мусора индекс пересчитывается на каждую операцию (или какой то блок), и, если индексы корявые, а 
данных много - то тормозить может не по детски?


   Сборка мусора удаляет сначала все ненужные версии записи, потом соотв.
блобы и узлы индексов. Потом переходит к след. записи. Так что random IO
там не слабый может быть.

--
Хорсун Влад 





Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Kovalenko Dmitry


Интересно, кстати, CROSS-DATABASE запросы в SuperClassic будут 
выполняться в другом процессе?


   На тот же хост с тем же портом - не будут. Если же использовать 
локальный

коннект, то это будет embedded соединение.


А это embedded будет фактически подключением а-ля классик ?

Ну в смысле, если два процесса классика сделают CROSS запрос (через 
embedded ) к другой базе - оно все корректно там будет разрулено?


Коваленко Дмитрий.

PS. Зацени мою воспитанность. Гыгы :-) 





Re: фрагментация бд

2008-09-23 Пенетрантность Alexey Voytsehovich


On 23.09.2008 21:09, Vlad Khorsun wrote:


Alexey Voytsehovich ...


опа. насчет индексов. при сборке мусора индекс пересчитывается на
каждую операцию (или какой то блок), и, если индексы корявые, а данных
много - то тормозить может не по детски?


Сборка мусора удаляет сначала все ненужные версии записи, потом соотв.
блобы и узлы индексов. Потом переходит к след. записи. Так что random IO
там не слабый может быть.


попробую без индексов тоже самое



Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Vlad Khorsun


Kovalenko Dmitry ...



Интересно, кстати, CROSS-DATABASE запросы в SuperClassic будут выполняться в 
другом процессе?


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


А это embedded будет фактически подключением а-ля классик ?


   В SC\CS - да

Ну в смысле, если два процесса классика сделают CROSS запрос (через embedded ) к другой базе - оно все корректно там будет 
разрулено?


   Качаем \ компилим, пробуем, докладуем ;)


PS. Зацени мою воспитанность. Гыгы :-)


   usus, заценил :)

--
Хорсун Влад 





Re: ������������ ��

2008-09-23 Пенетрантность Alexey Abramov

 ìîæåò ïîñîâåòóåøü êàê ìíå òîãäà ðåøèòü ïðîáëåìó

Ïîêà PS (èç ïåðâîãî ïîñòà) íå îïèøåøü - íèêàêèõ âðàçóìèòåëüíûõ ñîâåòîâ
 áûòü ïðîñòî íå ìîæåò.

Çàäà÷à àññèíõðîííîãî ñíÿòèÿ äàííûõ ñ äàò÷èêîâ, è õðàíåíèÿ ýòèõ äàííûõ
âîîîáùåì ïðèìèòèâíà, ñòî ðàç ïðîéäåíà, è åå ðåøàë çäåñü íàâåðíîå êàæäûé 
âòîðîé.
Ñêîðî åå â øêîëàõ çàäàâàòü áóäóò íà óðîêàõ èíôîðìàòèêè ))).

Àôòàð æå óïîðíî èãíîðèðóåò òî, ÷òî åìó ïèøóò óæå ìåñÿö.
Âìåòî ýòîãî îí ïûòàåòñÿ ñîçäàòü ñàìîäâèæóùååñÿ óñòðîéñòâî î ñåìè íîãàõ 
ïðèäåëàâ èõ ê àâòîìîáèëþ, ïðè ýòîì íåïðåìåííûì óñëîâèåì ÒÇ ÿâëÿåòñÿ, ÷òî 
ïîñëå êàæäîãî øàãà êîñòûëü äîëæåí óäàëÿòüñÿ è çàìåíÿòüñÿ íîâûì. Â ñâÿçè ñ 
çàñåêðå÷åííîñòüþ ÒÇ, è áîãàòûì âîîáðàæåíèåì îáùåñòâåííîñòè, êîñòûëè 
ïðåäñòàâëÿþòñÿ ðàçíûé äëèíû è êóäà èõ êðåïèòü - ìíîãî âàðèàíòîâ.
 ÷èñëå ïðî÷åãî, ïðåäëàãàëîñü, íàïðèìåð, îñíàñòèòü êàæäóþ íîãó ñîáñòâåííûì 
äâèæêîì ñ ìèêðîïðîöåññîðîì, à â êàáèíó äîáàâèòü ñèñòåìó êðîññ-óïðàâëåíèÿ.
Ïðè ýòîì, êàê íè ñòðàííî, îñíîâíàÿ ïðîáëåìà íàðèñîâàëàñü íå â ñëîæíîñòè 
óñòðîéñòâà,
à â áûñòðîé çàìåíå êîñûëåé íå ïðåðûâàÿ äâèæåíèÿ. Âçãëÿäû â ñòîðîíó áîëåå 
ìîùíûõ äâèæêîâ
íè ê ÷åìó íå ïðèâåëè, ò.ê. ÷åì ñëîæíåé äâèæîê òåì òðóäíåå áóäåò ìåíÿòü íîãè 
íà õîäó.

Îê. ×òîáû ýòî íå áûëî ïóñòûì òðåïîì - òåïåðü ïî äåëó.
Íàñêîëüêî ÿ ïîíÿë, òû ðåøèë îñòàíîâèòüñÿ íà âíåøíèõ òàáëèöàõ.

1) ïîêóïàåøü âèíò 500ãèã

2) ìîíòèðóåøü åãî êàê ïàïêó äëÿ õðàíåíèÿ âíåøíèõ òàáëèö

3) _äîïóñòèì_ êàæäàÿ òàáëèöà - 1 äåíü (aka: DATA_20080921, DATA_20080922, 
DATA_20080923)

4) !î÷åíü âàæíûé ïóíêò! ÍÅ ÍÀÄÎ ÍÈ×ÅÃÎ ÓÄÀËßÒÜ! ÍÅ ÍÀÄÎ ÍÈ×ÅÃÎ ÃÐÎÕÀÒÜ!
500ãèã òåáå õâàòèò ãîäà íà äâà ïðèìåðíî,
ïîòîì çàìåíèøü íà âèíò 50 òåðàáàéò (ê òîìó âðåìåíè ýòî áóäåò ñòàíäàðòîì)
Ñâåæèå äàííûå áóäóò â êåøå ÎÑ/ÁÄ. Ñòàðûå (ìåñÿ÷íîé äàâíîñòè) ìåøàòüñÿ íå 
áóäóò.

5) íå çàìîðà÷èâàåøüñÿ ñ âüþõàìè.

6) åäèíñòâåííàÿ ìàëåíüêàÿ ñëîæíîñü - ôîðìèðîâàíèå çàïðîñîâ íà êëèåíòå 
íàëåòó.
Ò.å. çàïðîñ äàííûõ çà 3 äíÿ äîëæåí âûãëÿäåòü òèïà
select * from DATA_20080921 d1
union all
select * from DATA_20080922 d2
union all
select * from DATA_20080923 d3

Ò.å. ïèøåøü ôóíêöèþ,
function GetMySelectSQL(ATablePrefix: string; d1,d2: TDateTime): string;
êîòîðàÿ, áóäåò ãåíåðèòü òàêîé çàïðîñ. Åñëè ïåðèîä ïåðåñåêàåò áîëüøå îäíîãî 
äíÿ -
èç íåñêîëüêèõ òàáëèö ïî ìàñêå. Äîï ïàðàìåòðû. where, sort by, group by - ïî 
âêóñó.

ÇÛ. ñàìà ÁÄ ìîæåò ëåæàòü íà ðàéäå íóæíîé ñòåïåíè íàäåæíîñòè,
à äëÿ _ñûðûõ_ äàííûõ îñîáàÿ íàäåæíîñòü íå íóæíà - òû èõ âñå ðàâíî ñîáèðàëñÿ 
óäàëÿòü. 





Re: Временные права

2008-09-23 Пенетрантность Олег Короткий

Наврал я про бэкап/рестор, проблема снова проявила себя после первого
зависания сервера. Пробовал по всякому, revoke/grant, откатился на CS,
на более раннюю версию сервера - все без толку. В общем, видать, фаза
луны повлияла. Проблему окончательно решил пересозданием объектов,
которые периодически становились недоступными (одна процедура и две
таблицы).
Всё же, хотелось бы узнать, как можно отследить в сети виновника
торжества, если никаких глюков в работе клиентов не наблюдается,
однако сервер периодически подвисает, а в логах только
SERVER/process_packet: broken port, server exiting
да  INET/inet_error: read errno = 10054 ?
Сетка небольшая, 14 компов, один свич...

ЙЦУКЕНТВОЮМАТЬ

2008-09-23 Пенетрантность Kovalenko Dmitry



   Качаем \ компилим, пробуем, докладуем ;)


Это ты мэнэ подколол.

Коваленко Дмитрий.

PS. ... но в код не заглядываем. Не толпимся, проходим, проходим на палубу 
FB 2.5, товарищи!


PSS. Чо-то у меня gsec до сих пор падает. Вместе с сервером. Но я ему от 
2.1.1 базу с паролями засунул и таки отчалил. 





Re: ЖТБЗНЕОФБГЙС ВД

2008-09-23 Пенетрантность Alexey Voytsehovich


On 24.09.2008 2:33, Alexey Abramov wrote:

может посоветуешь как мне тогда решить проблему

Пока PS (из первого поста) не опишешь - никаких вразумительных советов
быть просто не может.


Задача ассинхронного снятия данных с датчиков, и хранения этих данных
воообщем примитивна, сто раз пройдена, и ее решал здесь наверное каждый
второй.

:)
спасибо за художественную и особенно, за техническую часть :)

ок. давайте еще раз напишу задачу. может я и правда чего то не понимаю.

каждые 30 секунд с 300 приборов (по каждму прибору 20 типов данных) в бд пишется 
значение с меткой времени.


в 90% случаев эти данные никому ни нужны, но в тех самых 10% необходимо будет 
просмотреть каждую точку в пределах какого то минимального времени в поисках 
нужной информации.


глубина хранения данных - 7-10 дней. больше 10 дней они никому не нужны, их не 
надо пересчитывать или хранить потомкам, их надо просто удалить.


в связи с удалением данных, необходимо убирать мусор чтобы размер файла бд не 
рос совершенно дикими темпами. автоматическая сборка мусора не подходит, так как 
она может затормозить работу с бд совершенно непредсказуемо. остается ручная. 
которую мы и запускаем после того как

1. удалим данные
2. сделаем бэкап

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


Все. слушаю вопросы на уточнение и велосипед по построению систем хранения 
информации с датчиков ;)


Заранее спасибо.



Re: ������������ ��

2008-09-23 Пенетрантность Oleg Matveyev

 ïîêà ó íàñ áä òîëüêî îòðåñòîðåííàÿ - òî ïî âðåìåíè è ñêîðîñòè äîñòóïà âñå 
 îê, êîãäà ïðîõîäèò îêîëî íåäåëè, ñáîðêà ìóñîðà ïðîèñõîäèò êàêîå òî 
 ñîâåðøåííî äèêîå âðåìÿ - ÷òî íåïðèåìëåìî.

â ïåðâûé äåíü ñáîðêà ìóñîðà - ïðîõîäèò áûñòðî, à íà âîñüìîé - äîëãî?
ó òåáÿ OAT òî÷íî íå çàñòðåâàåò?
è òî÷íî sweep ñðàáàòûâàåò êàæäóþ íî÷ü?