powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Автоматизация перестройки БД под АСА 9
62 сообщений из 62, показаны все 3 страниц
Автоматизация перестройки БД под АСА 9
    #32890850
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть проблема: при долгой работе сервера размер БД растет. Даже при очистке устаревших данных. Характер хранимых у нас данных таков, что через некоторое время эксплуатации системы количество записей выходит примерно на постоянную цифру - разную для каждого клиента. Старые данные удаляются/новые добавляются. Однако - размер базы растет постоянно!!! При стартовом объеме БД примерно в 25-30 мб за 4-5 месяцев она выросла до 700 (!!!) мегабайт! Помогает reload базы - из старой с созданием новой. Объем уменьшился на порядоук... Однако вручную таким заниматься не очень хочется... Может кто-то смог автоматизировать этот процесс???
Или есть какие-то советы по решению сложившейся проблемы??
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32890860
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoЕсть проблема: при долгой работе сервера размер БД растет. Даже при очистке устаревших данных. Характер хранимых у нас данных таков, что через некоторое время эксплуатации системы количество записей выходит примерно на постоянную цифру - разную для каждого клиента. Старые данные удаляются/новые добавляются. Однако - размер базы растет постоянно!!! При стартовом объеме БД примерно в 25-30 мб за 4-5 месяцев она выросла до 700 (!!!) мегабайт! Помогает reload базы - из старой с созданием новой. Объем уменьшился на порядоук... Однако вручную таким заниматься не очень хочется... Может кто-то смог автоматизировать этот процесс???
Или есть какие-то советы по решению сложившейся проблемы??
Скорее всего трабла в том, что при удалении данных получается сильная дефрагментация таблиц - страницы остаются полупустые, а если данные заливаются через LOAD TABLE или вставляются большими транзакциями, скорее всего ASA впихивает их на новые страницы для повышения скорости вставки. Попробуйте после удаления делать REORGANIZE TABLE, это дефрагментирует таблицы и освободит пустые страницы, а далее уже вставка записей и пойдет по этим пустым страницам.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32890861
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите еще кстати в Central, насколько сильно таблицы дефрагментируются.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32892449
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как посмотреть в Централе фрагментацию?? Это какой-то параметр, или есть графическая утилита?

В последнее время вообще появилась непонятная проблема: нам привезли базу на испытания. Мы ее подняли. После попыток поанализировать данные централом (не помню уже куда ткнул) появилась ошибка об IO error. После переподнятия база доступна. Однако после того, как опускаешь сервер, она не хочет переписываться!! Что происходит??
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32892512
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoА как посмотреть в Централе фрагментацию?? Это какой-то параметр, или есть графическая утилита?
Можно посмотреть в Central вкладочку "Table Page Usage", если щелкнуть на саму БД и к ней никто, кроме Central на данный момент не подключен. Как посмотреть из ISQL, читайте в BOL:
BOL
Код: plaintext
1.
2.
ASA SQL User's Guide 
  Monitoring and Improving Performance 
    Fragmentation


Vadim Romanenko
В последнее время вообще появилась непонятная проблема: нам привезли базу на испытания. Мы ее подняли. После попыток поанализировать данные централом (не помню уже куда ткнул) появилась ошибка об IO error. После переподнятия база доступна. Однако после того, как опускаешь сервер, она не хочет переписываться!! Что происходит??
Думаю все это означает, что неплохо бы запустить скан-диск и поискать плохие сектора. Дело скорее всего не в ASA, а жестком диске и файловой системе.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32914627
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSПопробуйте после удаления делать REORGANIZE TABLE, это дефрагментирует таблицы и освободит пустые страницы, а далее уже вставка записей и пойдет по этим пустым страницам.

А кто пользовался REORGANIZE TABLE??
Такая ситуация: есть постоянно открытая сессия, которая вначале выполнила select из некоторой таблицы - пусть она называется indval. Есть желание эту таблицу отREORGANIZE'ить. Однако при выполнении команды
REORGANIZE TABLE indval;
происходит зависание процесса, выполнившего эту команду. Есть предположение, что все происходит из-за блокирования таблицы в результате select. Так ли это? Как с этим бороться?
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32914919
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoТакая ситуация: есть постоянно открытая сессия, которая вначале выполнила select из некоторой таблицы - пусть она называется indval. Есть желание эту таблицу отREORGANIZE'ить. Однако при выполнении команды
REORGANIZE TABLE indval;
происходит зависание процесса, выполнившего эту команду. Есть предположение, что все происходит из-за блокирования таблицы в результате select. Так ли это? Как с этим бороться?
Ну вообще то желательно после выполнения SELECT и полного получения курсора делать COMMIT. Это снимет SHARED блокировку с таблицы и позволит выполнять над ней DML команды и REORGANIZE TABLE.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32915682
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSСкорее всего трабла в том, что при удалении данных получается сильная дефрагментация таблиц - страницы остаются полупустые, а если данные заливаются через LOAD TABLE или вставляются большими транзакциями, скорее всего ASA впихивает их на новые страницы для повышения скорости вставки. Попробуйте после удаления делать REORGANIZE TABLE, это дефрагментирует таблицы и освободит пустые страницы, а далее уже вставка записей и пойдет по этим пустым страницам.
Эта проблема - одна из неприятных особенностей ASA. Может я ошибаюсь, но дело не сколько в сильной дефрагментации, сколько в плохом повторном использовании освободившихся страниц. Слищком уж сильно разрасрастается база. И дело не в LOAD и репликации, у нас и при обычных INSERT по одной записи тоже самое происходит. В MS SQL при том же стиле работы с нашим приложением и при тех же запросах такого не происходит. Максимум сжатия там 10-50%, а тут можно и 5-10 раз базу ужать. Е если не ужимать, то дальше будет расти. На ASA 6-8 было именно так, судя по заявлению автора топика, и на ASA9 тоже самое, жаль.

Хорошо хоть, что в ASA9 unload/reload работает раз в 10-20 быстрее, чем в ASA6-7. И этим стало можно пользоваться.

А REORGANIZE TABLE - не очень удобно, она естетвенно, требует монопольный доступ к таблице и увеличивает размер БД (надо же ей где-то данные промежуточные держать), легче всех выгнать и сделать unload/reload.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32915726
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael_ пишет:

> Эта проблема - одна из неприятных особенностей ASA. Может я ошибаюсь, но
> дело не сколько в сильной дефрагментации, сколько в плохом повторном
> использовании освободившихся страниц. Слищком уж сильно разрасрастается
> база. И дело не в LOAD и репликации, у нас и при обычных INSERT по одной
> записи тоже самое происходит. В MS SQL при том же стиле работы с нашим
> приложением и при тех же запросах такого не происходит. Максимум сжатия
> там 10-50%, а тут можно и 5-10 раз базу ужать.

Ну у меня максимум можно было ужать базы на 10-30% при помощи reload.
Что я делаю не так? Если единовременно вставить большой объем данных,
который потом удалить - тогда да, ужимается сильно. Но если не делать
reload, то это избыточное место повторно используется, что можно
проверить путем повторной вставки аналогичного объема данных.

Это все асбстрактные слова, пока не приведены номера версий, хотя бы
упрощенная структура БД, скрипты для "обычных INSERT" и статистика роста
размера.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32915800
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун
michael_ пишет:

> Эта проблема - одна из неприятных особенностей ASA. Может я ошибаюсь, но
> дело не сколько в сильной дефрагментации, сколько в плохом повторном
> использовании освободившихся страниц. Слищком уж сильно разрасрастается
> база. И дело не в LOAD и репликации, у нас и при обычных INSERT по одной
> записи тоже самое происходит. В MS SQL при том же стиле работы с нашим
> приложением и при тех же запросах такого не происходит. Максимум сжатия
> там 10-50%, а тут можно и 5-10 раз базу ужать.

Ну у меня максимум можно было ужать базы на 10-30% при помощи reload.
Что я делаю не так? Если единовременно вставить большой объем данных,
который потом удалить - тогда да, ужимается сильно. Но если не делать
reload, то это избыточное место повторно используется, что можно
проверить путем повторной вставки аналогичного объема данных.

Это все асбстрактные слова, пока не приведены номера версий, хотя бы
упрощенная структура БД, скрипты для "обычных INSERT" и статистика роста
размера.
Posted via ActualForum NNTP Server 1.1
Присоединяюсь. У меня на ASA9 на некоторые таблицы в результате перерасчетов удаляются тысячи записей и вставляются столько же новых - и никакого прироста файла БД просто не наблюдается. С операциями UPDATE база вырастает на кол-во страниц, над которыми идет UPDATE, далее после успешного прохождения транзакции эти страницы становятся пустыми и используются в дальнейших операциях. Плюс я специально, в тестах над большими таблицами, удалял прямо кусками записи и потом добавлял вновь - таблица не разбухала, не набирала новых страниц и не фрагментировалась. Сами разработчики ASA вообще рекомендуют сразу увеличивать пространство файла БД на некоторую величину, чтобы быстрее происходила работа с БД. Лично я считаю основной причиной сильной дефрагментации таблиц и расбухания файла БД могуть быть постоянные UPDATE на большое кол-во записей над полями, у которых типы с плавающей длиной и неоптимально выставленной PCTFREE.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916036
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун
Это все асбстрактные слова, пока не приведены номера версий, хотя бы
упрощенная структура БД, скрипты для "обычных INSERT" и статистика роста
размера.


Вот наша таблица:

create table INDVAL
(
NCHANNEL_ID numeric(30,0) not null,
VACPER varchar(1) not null,
VVALTYPE varchar(1) not null,
NVALUE numeric(30,6) not null,
VQUALITY varchar(1) not null,
DDATE timestamp not null,
DINPUT timestamp not null
);

/*==============================================================*/
/* Index: RELATION_100_FK */
/*==============================================================*/
create index RELATION_100_FK on INDVAL (
NCHANNEL_ID ASC
);

alter table INDVAL
add foreign key FK_INDVAL_RELATION__CHANNEL (NCHANNEL_ID)
references CHANNEL (NCHANNEL_ID)
on update restrict
on delete restrict;

она практически единственная изменяющаяся в нашей бд (хранит показания счетчиков электричества). Есть процедура очистки, выполняется раз в день. Удаляет примерно 5-10 тыс. записей в день по признаку устаревания (дата показания). Средний объем - 300-400 тыс. записей.
Primary key отсутствует для экономии места на диске.
Вставка записей идет потоком простыми insert'ами.
За время эксплуатации с сентября по январь выросла до 750 мегабайт вместе с лог-файлом. Без него занимала примерно 450 мегабайт. В конце-концов отказалась выполняться на Cyrix 800/256 мб (такое паршивое семейство процессоров из-за одноплатного исполнения - все на борту кроме памяти). Точнее база конечно запускалась, но инициализация приложения происходила за 20 минут, в то время как после unload-reload эта же самая процедура занимала несколько _секунд_. После unload-reload стала занимать 61 мегабайт. По-моему совввввершенно конкретные цифры.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916052
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS Vadim RomanenkoТакая ситуация: есть постоянно открытая сессия, которая вначале выполнила select из некоторой таблицы - пусть она называется indval. Есть желание эту таблицу отREORGANIZE'ить. Однако при выполнении команды
REORGANIZE TABLE indval;
происходит зависание процесса, выполнившего эту команду. Есть предположение, что все происходит из-за блокирования таблицы в результате select. Так ли это? Как с этим бороться?
Ну вообще то желательно после выполнения SELECT и полного получения курсора делать COMMIT. Это снимет SHARED блокировку с таблицы и позволит выполнять над ней DML команды и REORGANIZE TABLE.

Честно говоря с такой глупостью мы встретились впервые. На АСА. Мы тоже дошли до этого решения. Но как-то не очень мне кажется хорошо, когда простой select лочит таблицу так, что с ней ничего нельзя сделать... Непонятны мотивы.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916133
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoЧестно говоря с такой глупостью мы встретились впервые. На АСА. Мы тоже дошли до этого решения. Но как-то не очень мне кажется хорошо, когда простой select лочит таблицу так, что с ней ничего нельзя сделать... Непонятны мотивы.
Гм, абсолютно понятные мотивы - пока на SELECT клиент не закрывает курсор, на таблицах висит SHARED-TABLE блокировка на запрет выполнения на них DML операторов. Собственно говоря DDL операторам она никак не мешается, зато гарантирует, что пока клиент не решил, что больше он с таблиц, участвующих в запросе ничего не хочет, их метаструктура не изменится.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916160
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenkoона практически единственная изменяющаяся в нашей бд (хранит показания счетчиков электричества). Есть процедура очистки, выполняется раз в день. Удаляет примерно 5-10 тыс. записей в день по признаку устаревания (дата показания). Средний объем - 300-400 тыс. записей.
Primary key отсутствует для экономии места на диске.
Вставка записей идет потоком простыми insert'ами.
За время эксплуатации с сентября по январь выросла до 750 мегабайт вместе с лог-файлом. Без него занимала примерно 450 мегабайт. В конце-концов отказалась выполняться на Cyrix 800/256 мб (такое паршивое семейство процессоров из-за одноплатного исполнения - все на борту кроме памяти). Точнее база конечно запускалась, но инициализация приложения происходила за 20 минут, в то время как после unload-reload эта же самая процедура занимала несколько _секунд_. После unload-reload стала занимать 61 мегабайт. По-моему совввввершенно конкретные цифры.
Ну вы даете - сэкономили на PK, зато сделали FK с неявным индексом, да еще явный индекс на то же поле :) Тормоза обеспечены, заодно думается и разбухание БД уже видится довольно ясно. Не может ASA без PK или UK/UI жить, любит она их, так как она "порядочная" РСУБД :) Я бы рекомендовал Вам вставить в таблицу PK и обязательно убить индекс по CHANNEL. Или вместо его убивания наоборот убить FK и на AFTER ON INSERT, UPDATE FOR EACH STATEMENT триггерах реализовать проверку ссылочной целостности, раз уж у Вас такие обьемы вставляются и удаляются. Каскады так же можно реализовать на триггерах в таблице CHANNEL.

P.S. В общем еще раз очередное подтверждение, что от граммотного проектирования БД зависят все параметры ее функционирования - от скорости, до разбухания :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916335
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отстутсвие PK - это плохо.

Но! Причем здесь отсутсвие PK и разбухание БД, если после удаление данных страницы памяти освободились и уже не принадлежат таблице? Не вижу логики.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916450
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael_Отстутсвие PK - это плохо.

Но! Причем здесь отсутсвие PK и разбухание БД, если после удаление данных страницы памяти освободились и уже не принадлежат таблице? Не вижу логики.
При вставке записей ASA будет стараться их вставлять по PK или кластерному индексу. Соотвествующе если удаление соотносится с этим же порядком (я так понимаю в приведенном примере записи в основном будут вставлять и удаляться по CHANNEL) - то даже приблизительная физическая сортировка записей в таблице будет давать преимущества в виде меньшей дефрагментированности таблицы и при удалении будут чаще освобождаться страницы до состояния пустых. Из чего я делаю вывод, что самый большой повод разрастаться БД - это допускать сильную дефрагментацию таблиц.

P.S. Кстати REORGANIZE TABLE по моему нельзя делать на таблицы, у которых нет PK.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916516
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS michael_Отстутсвие PK - это плохо.

Но! Причем здесь отсутсвие PK и разбухание БД, если после удаление данных страницы памяти освободились и уже не принадлежат таблице? Не вижу логики.
При вставке записей ASA будет стараться их вставлять по PK или кластерному индексу. Соотвествующе если удаление соотносится с этим же порядком (я так понимаю в приведенном примере записи в основном будут вставлять и удаляться по CHANNEL) - то даже приблизительная физическая сортировка записей в таблице будет давать преимущества в виде меньшей дефрагментированности таблицы и при удалении будут чаще освобождаться страницы до состояния пустых. Из чего я делаю вывод, что самый большой повод разрастаться БД - это допускать сильную дефрагментацию таблиц.


Согласен с приведенными аргументами, но они не согласуются с приведенной статистикой. Не должна она была так быстро расти.

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

Повторяю - на MS такого не наблюдается. То есть дело не в рялиционной теории.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916975
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Ну вы даете - сэкономили на PK, зато сделали FK с неявным индексом, да еще явный индекс на то же поле :)

м-м-м-м... а где там два индекса на одно и то же поле?? насколько я понимаю, тот индекс генерится автоматически при создании FK. Мы его вручную не добавляли... Скрипт сгенерил мне PowerDesigner. Я честно говоря его даже не смотрел... Да и в студии в списке индексов нет индекса по полю NCHANNEL_ID
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32916987
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
/*==============================================================*/
/* Index: RELATION_100_FK */
/*==============================================================*/
create index RELATION_100_FK on INDVAL (
NCHANNEL_ID ASC
);

alter table INDVAL
add foreign key FK_INDVAL_RELATION__CHANNEL (NCHANNEL_ID)
references CHANNEL (NCHANNEL_ID)
on update restrict
on delete restrict;
Ну тогда это PD "намутил" :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917014
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS[quot michael_]Отстутсвие PK - это плохо.

Но! Причем здесь отсутсвие PK и разбухание БД, если после удаление данных страницы памяти освободились и уже не принадлежат таблице? Не вижу логики.
При вставке записей ASA будет стараться их вставлять по PK или кластерному индексу. Соотвествующе если удаление соотносится с этим же порядком (я так понимаю в приведенном примере записи в основном будут вставлять и удаляться по CHANNEL) - то даже приблизительная физическая сортировка записей в таблице будет давать преимущества в виде меньшей дефрагментированности таблицы и при удалении будут чаще освобождаться страницы до состояния пустых. Из чего я делаю вывод, что самый большой повод разрастаться БД - это допускать сильную дефрагментацию таблиц.


ASCRUS
P.S. Кстати REORGANIZE TABLE по моему нельзя делать на таблицы, у которых нет PK.
Таки да, таки нельзя. Но для экспериментов на стенде добавили индекс - и обнаружили проблемы с блокированием.
Скажу все же, почему мне это кажется дикостью. Потому, что приличные СУБД предоставляют средства для дефрагментации он-лайн. При подключенных пользователях.
По поводу блокирования select'ом таблицы... Например в Оракле по-моему такой глупости нету, как-то решается этот вопрос. Там даже есть такая возможность - зафиксировать состояние БД для сессии. Точнее, данных в БД. (ALTER SESSION SET ISOLATION_LEVEL = SERIALIZABLE) И чего бы кто ни вставлял в базу, человек, выполнивший эту команду, увидит лишь данные, которые были на момент сериализации сессии. А тут... Обычный селект открывает транзакцию что-ли раз ее нужно закрывать? Коммитом???
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917026
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
/*==============================================================*/
/* Index: RELATION_100_FK */
/*==============================================================*/
create index RELATION_100_FK on INDVAL (
NCHANNEL_ID ASC
);

alter table INDVAL
add foreign key FK_INDVAL_RELATION__CHANNEL (NCHANNEL_ID)
references CHANNEL (NCHANNEL_ID)
on update restrict
on delete restrict;
Ну тогда это PD "намутил" :)
дело в том, что в списке индексов в студии тоже не видно такого индекса как RELATION_100_FK. Не может так быть, что он просто автоматический??

хотя... я только что сделал unload базы - там почему-то этот индекс (RELATION_100_FK) отсутствует... Мда.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917043
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko
хотя... я только что сделал unload базы - там почему-то этот индекс (RELATION_100_FK) отсутствует... Мда.
Извиняюсь за дезинформацию. Индекса в базе таки нет. Видать появился глюк в PD при переходе с одной версии на другую. На физическом уровне этот индекс отсутствует... Так что вариант с двумя индексами на одно поле просьба больше не рассматривать...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917096
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoТаки да, таки нельзя. Но для экспериментов на стенде добавили индекс - и обнаружили проблемы с блокированием.
Скажу все же, почему мне это кажется дикостью. Потому, что приличные СУБД предоставляют средства для дефрагментации он-лайн. При подключенных пользователях.
По поводу блокирования select'ом таблицы... Например в Оракле по-моему такой глупости нету, как-то решается этот вопрос. Там даже есть такая возможность - зафиксировать состояние БД для сессии. Точнее, данных в БД. (ALTER SESSION SET ISOLATION_LEVEL = SERIALIZABLE) И чего бы кто ни вставлял в базу, человек, выполнивший эту команду, увидит лишь данные, которые были на момент сериализации сессии. А тут... Обычный селект открывает транзакцию что-ли раз ее нужно закрывать? Коммитом???
Гм - с чего бы это нам сравнивать версионник Oracle и блокировочник ASA ? Разные архитектуры, разные возможности. А SHARED TABLE блокировка обьясняется просто - у ASA не поддерживаются в транзакциях команды DDL, в отличие от Oracle. Поэтому и блокировка на изменение метаструктуры вешается. Поэтому и проектировать логику работы с БД в ASA нужно согласно ее архитектурным особенностям и COMMIT после SELECT ставить. И транзакции длинными не делать. И тогда окажется, что и REORGANIZE в онлайн прекрасно работает, постепенно дефрагментируя данные, танцуя между транзакциями сессий :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917200
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko
create table INDVAL

ASA 9.0.2.2545 (кстати, ты не упомянул свою версию)
Сделал подобную таблицу, кроме того сделал такую же по структуре INDVAL2

В INDVAL2 залил 128 тыс записей.

Дальше выполняю много раз:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
INSERT INTO INDVAL
SELECT * FROM INDVAL2

commit

DELETE FROM INDVAL

commit

checkpoint

После второго выполнения размер файла db зафиксировался и больше не вырастал ни на байт .
Transaction log, естественно, растет ОЧЕНЬ БЫСТРО, ибо:
BOL
You can control how fast the transaction log file grows by ensuring that all your tables have compact primary keys. If you carry out updates or deletes on tables that do not have a primary key or a unique index not allowing NULL, the entire contents of the affected rows are entered in the transaction log. If a primary key is defined, the database server needs to store only the primary key column values to uniquely identify a row. If the table contains many columns or wide columns, the transaction log pages fill up much faster if no primary key is defined. In addition to taking up disk space, this extra writing of data affects performance.


т.е. при удалении при наличии PK в лог попадет
Код: plaintext
1.
DELETE FROM INDVAL WHERE id=NNN
, а при отсутствии
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
DELETE FROM INDVAL WHERE 
 NCHANNEL_ID = ....
 AND VACPER ='..'
 AND VVALTYPE ='..'
 AND NVALUE =...
 AND VQUALITY ='..'
 AND DDATE ='..'
 AND DINPUT='..'
Разница чувствуется?
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917210
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUSГм - с чего бы это нам сравнивать версионник Oracle и блокировочник ASA ? Разные архитектуры, разные возможности.
ну да, согласен, я немножко неудачное сравнение привел :) ни к чему конечно. Разные вещи...

Но по поводу селекта... Дело в том, что у нас есть служебная сессия, которая все время висит в бэкграунде и иногда вычитывает некоторые данные из базы. Вот эта сессия и оказалась блокирующей для REORGANIZE TABLE. Никто никаких транзакций не открывал особо. Обычный селект. Просто я никогда не встречал такого тупичка, что после селекта нужно закрывать транзакцию. Как-то специфично уж очень... Это надо как-то пересмотреть наше приложение... Которое впринципе не привязано к конкретной БД. Считается, что если переписать пару процедур - то все будет работать на любом сервере... А ради селектов в АСА грубить такое... Ладно, поглядим. Но все равно это выглядит странно.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917222
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoНо по поводу селекта... Дело в том, что у нас есть служебная сессия, которая все время висит в бэкграунде и иногда вычитывает некоторые данные из базы. Вот эта сессия и оказалась блокирующей для REORGANIZE TABLE. Никто никаких транзакций не открывал особо. Обычный селект. Просто я никогда не встречал такого тупичка, что после селекта нужно закрывать транзакцию. Как-то специфично уж очень... Это надо как-то пересмотреть наше приложение... Которое впринципе не привязано к конкретной БД. Считается, что если переписать пару процедур - то все будет работать на любом сервере... А ради селектов в АСА грубить такое... Ладно, поглядим. Но все равно это выглядит странно.
Не верю, что можно написать приложение, которое одновременно эффективно с разными СУБД будет работать - у каждой будут свои ньюансы. В данном случае для ASA COMMIT после SELECT и есть такой "ньюанс" :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917235
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS
Не верю, что можно написать приложение, которое одновременно эффективно с разными СУБД будет работать - у каждой будут свои ньюансы. В данном случае для ASA COMMIT после SELECT и есть такой "ньюанс" :)

:) ну да, наверное. Это именно "ньюанс" АСА. Оооочень такой специфичный ньюанс...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917394
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Может оказаться, что и коммит не нужен. Иногда достаточно закрыть курсор. Закрыть курсор и сделать коммит - разные вещи.
Посмотрите логику программы. Если у Вас используется автокоммит, то коммит должен идти сразу после закрытия курсора. Значит у Вас либо не автокоммит, и тогда нужно самому закрывать транзакцию, либо автокоммит, но курсор не закрывается очень долгое время...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32917765
L0cat0r
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу добавить следующее :

1. По поводу commit после select
У меня это давно в привычке, но недельки две назад посыпались блокировки и после этого – начал копать :
Вкратце Delphi - odbcexpress – ASA(8 или 9) без разницы
MS выложил очередной патч на ODBC для XP, там где его успели поставить и пошли блокировки т.е. исправлено (корректно-передается) тип курсора на открытие выборки . OeDataSet.hStmt.CursorType там где стоял «Dynamic» начала выскакивать блокировка (открывается естественно на CahedUpdate) от которой не спасал и commit.

2. Load table, input однозначно дуют базу, а insert уже заполняет свободные места.Одна из причин по которой появилось «Динамическое декларирование временных таблиц» -> FAQ.

Удачи!
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918141
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Возникло предположение, что в моем варианте теста ASA может схитрить, поэтому поставил еще один checkpoint перед DELETE

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
INSERT INTO INDVAL
SELECT * FROM INDVAL2

commit

checkpoint

DELETE FROM INDVAL

commit

checkpoint
Результат тот же самый - база не растет.

Поэтому еще раз задаю вопрос:
Какой номер версии ASA?

Без этого - две страницы пустословия.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918393
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
АСА 9.0.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918433
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko пишет:
> АСА 9.0.1

А дальше? Впрочем, я предполагал что-то подобное. В ASA 9.0.1 было
предостаточно новых ошибок, связанных с очень активной работой по
усовершенстванию сервера по многим направлениям.
Обнови до ASA 9.0.2, приложи последний EBF и потом уже проверь.
С этого и надо было начинать.

P.S.
ASCRUS, может стоит внести в FAQ пункт сам знаешь о чем? Я устал
повторять одно и то же. Все, с этого момента выдача информации о том,
исправлена ли ошибка, и если да, то в каком EBF - платная услуга :)
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918498
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун
Vadim Romanenko пишет:
> АСА 9.0.1

А дальше? Впрочем, я предполагал что-то подобное. В ASA 9.0.1 было
предостаточно новых ошибок, связанных с очень активной работой по
усовершенстванию сервера по многим направлениям.
Обнови до ASA 9.0.2, приложи последний EBF и потом уже проверь.
С этого и надо было начинать.
Лично я не думаю, что при переходе на 9.0.2 ситуация у него измениться. Нужно больше копать в сторону логики работы с данными и их хранения в БД - IMHO база пухнет из за несоблюдения архитектурных особенностей ASA.

Александр ГoлдунP.S.
ASCRUS, может стоит внести в FAQ пункт сам знаешь о чем? Я устал
повторять одно и то же. Все, с этого момента выдача информации о том,
исправлена ли ошибка, и если да, то в каком EBF - платная услуга :)
Posted via ActualForum NNTP Server 1.1
Выноси, я галочку поставлю :)

P.S. Кстати письмо получил ? А то я послал довольно интересное с моей точки зрения предложение, а в ответ тишина :(
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918710
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ASCRUS пишет:

> Лично я не думаю, что при переходе на 9.0.2 ситуация у него измениться.

Все может быть. Но в ASA 9.0.1 они умудрились даже элементарный LIKE
поломать.

> Нужно больше копать в сторону логики работы с данными и их хранения в БД
> - IMHO база пухнет из за несоблюдения архитектурных особенностей ASA.

Ну ч же проверил на такой же таблице без первичных ключей.

> P.S. Кстати письмо получил ? А то я послал довольно интересное с моей
> точки зрения предложение, а в ответ тишина :(

Да, ответил уже. Решил переползти с OE на Thunderbird, а тот почтовый
аккаунт еще не перетащил.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918872
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун
P.S.
ASCRUS, может стоит внести в FAQ пункт сам знаешь о чем? Я устал
повторять одно и то же. Все, с этого момента выдача информации о том,
исправлена ли ошибка, и если да, то в каком EBF - платная услуга :)
Posted via ActualForum NNTP Server 1.1
М-м-м... А при чем тут - исправлена ошибка или нет?? Я не видел тут никакой ошибочности. Все растут впринципе. Просто у разных СУБД есть свои средства дефрагментации. И изначально вопрос был об этом.
А потом - о том, что селект лочит таблицу. И Reorganize Table тогда не работает.
Вроде нигде ни о каких ошибках речь не шла...

А не обновили базу до АСА 9.0.2 по одной единственной причине - когда ее ставили на необслуживаемую станцию, тогда был только 9.0.1. И после этого еще туда не ездили. Но обновление естественно будет произведено как только появится возможность.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918907
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko пишет:

> М-м-м... А при чем тут - исправлена ошибка или нет?? Я не видел тут
> никакой ошибочности.

Постоянный рост базы при отсутствии роста объема хранимых данных я
считаю ошибкой сервера. У себя такого не наблюдаю. Повторить на свежем
ASA 9.0.2 не смог. Отсюда предположение, что возможно эта ошибка уже
исправлена.

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32918992
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун
Постоянный рост базы при отсутствии роста объема хранимых данных я
считаю ошибкой сервера. У себя такого не наблюдаю. Повторить на свежем
ASA 9.0.2 не смог. Отсюда предположение, что возможно эта ошибка уже
исправлена.


Мммм... А не могли бы Вы сделать такое: посмотреть сколько занимает база с установившимся размером (при удалении/добавлении одинакового кол-ва записей) и после reload??

Интересно - сколько засоряет АСА при таком подходе. Возможно, она тоже сократится в несколько раз? После релоада? Просто в этом случае вопрос с автоматизацией unload/reload все равно остается... В связи со спецификой наших задач необходимо минимальное место для БД...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919165
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko
Мммм... А не могли бы Вы сделать такое: посмотреть сколько занимает база с установившимся размером (при удалении/добавлении одинакового кол-ва записей) и после reload??


Итак, исходная база, в которой в INDVAL2 130 тыс. записей, в INDVAL - 260 тыс записей перезагружена. Размер - 33 мб.

После первого выполнения запроса:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
DELETE FROM INDVAL

commit

checkpoint

INSERT INTO INDVAL
SELECT * FROM INDVAL2

commit

checkpoint

INSERT INTO INDVAL
SELECT * FROM INDVAL2

commit

checkpoint


размер вырос до 56 мб, что вполне естественно.
Все последующие выполнения этого же запроса не увеличвают базу ни на байт.

Естественно, если я ее перезагружу, то размер опять будет 33 мб. Но смысла в этой операции мало в контексте экономии места, т.к. первый же чекпоинт опять увеличит размер.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919169
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Интересно... Что-ж. Попробуем перевести проект на новую версию АСА. Спасибо за тестирование.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919205
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А как правильно рубить log-файл? Например, можно ли сделать так, чтоб он был не больше определенного размера??? А то я говорил - у нас лог получился гораздо больше самой базы... Вернее - не гораздо, но очень даже сравнимо.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919223
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoА как правильно рубить log-файл? Например, можно ли сделать так, чтоб он был не больше определенного размера??? А то я говорил - у нас лог получился гораздо больше самой базы... Вернее - не гораздо, но очень даже сравнимо.
Ну так смотря как задача экплуатируется. Способов много ... начиная от параметра "-m", который вообще лог держит только на время запуска сервера и режет его по коммиченным транзакциям до резки при бакупе. Тут уж от логики поставленной задачи зависит, когда его рубить лучше :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919240
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko пишет:
> А как правильно рубить log-файл?

Если нет репликации, не используется инкрементальный бэкап и данные в
базе не представляют особой ценности, тогда ключик -m при запуске
сервера. В этом варианте ASA будет автоматом обрезать лог при каждом
чекпоинте.

Но лучше делать это при бэкапе, полном либо инкрементальном.
См. в хелпах про dbbackup, ключики -х либо -xo либо -r
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919263
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за комментарии!! Будем разбираться дальше :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919268
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А может быть, всё-таки купить винт побольше? Или речь идёт о БД для тамагочи (в смысле, КПК :))?
____________________________________
- Гарфилд, мышь!
- Спасибо, я сыт!
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919325
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000А может быть, всё-таки купить винт побольше? Или речь идёт о БД для тамагочи (в смысле, КПК :))?

Нет, все гораздо хуже - речь идет о компе, который грузится и работает на флешке :) Это наверное еще хуже... хотят впихнуть Линукс и АСА с базой на 128 метров. А это знаете ли... Думаешь о каждом лишнем мегабайте :)

Кстати! Я там выше кажется упоминал, что больше винт не помогает. На определенном этапе фрагментации приходит ТАКОЕ затупление при обращении к базе... Что то, что выбиралось за пару секунд после ребилда, выбирается минут 15. Так что наверное стоит грести в сторону Reorganize Table в любом случае.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32919664
iLLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim RomanenkoЧто то, что выбиралось за пару секунд после ребилда, выбирается минут 15.
А вот это уже пахнет отсутствием необходимых индексов. Сразу после ребилда данные отсортированы, поэтому отсутствие индекса не ухудшает ситуацию, но потом, когда база "расколбашена" полностью, отсутствие нужных индексов приводит к постоянной загрузки/выгрузки страниц таблиц в кэш/из кэша, что приводит к увеличению времени выборок.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32920089
michael_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dim2000А может быть, всё-таки купить винт побольше?

Дело не только в занимаемом пространстве, но и в потере производительности. И из-за того, что сам файл с данными больше и из-за дефрагментации.

Поэтому unload/relad хотя бы раз в квартал - хорошее решение практически для любой базы.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921078
AnSo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кстати, по поводу привязки к СУБД - для InterBase в такой же ситуации ("голый select") желательно наоборот rollback сделать, а не commit %-)

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

Да, и раз у ж к слову пришлось.
В InterBase тоже возникают проблемы с ростом объема БД, но уже как в версионнике - нужна сборка мусора, она отъедает ресурсы.
Но в InterBase, к сожалению, нельзя выполнить дефрагментацию - мусор-то соберется, но скорость деградировавшая из-за фрагментированности таблиц может быть восстановлена только за счет backup-restore БД 8-|
Это, на мой взгляд, самая большая ж#$@ в InterBase - невозможность on-line манипуляций с физическим распределением БД. Даже тэйблспейсов нет - файл БД может быть порублен на фрагменты, но делается это по принципу "заполнили очередной, начинаем лить в следующий".

Отсюда вопрос к практикам ASA - а насколько НА ПРАКТИКЕ помогает оптимизация размещением частей БД на разных носителях? Или реально ни у кого до этого не доходило и RAID 10 решает все проблемы просто за счет случайного перемешивания по дискам?
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921197
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AnSo
Отсюда вопрос к практикам ASA - а насколько НА ПРАКТИКЕ помогает оптимизация размещением частей БД на разных носителях? Или реально ни у кого до этого не доходило и RAID 10 решает все проблемы просто за счет случайного перемешивания по дискам?
Недавно уже обсуждалось подобное.
Здесь

Если уж упомянули IB, то у ASA при схожих параметрах проектов потребность в разнесении возникает реже (по сравнению с архитектурой Classic Server), хотя бы за счет общего кэша для всех сессий. При схожих параметрах (объем данных, размер кэша, кол-во пользователей) может оказаться, что у ASA вообще почти нет обращений к диску, а FB CS будет считывать их по многу раз для разных пользователей.

По той же причине и RAID10 нужен гораздо реже.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921272
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
michael
Поэтому unload/relad хотя бы раз в квартал - хорошее решение практически для любой базы.
Так вот - вернемся к моему вопросу :) Как бы это автоматизировать??? :)
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921300
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko пишет:

> Так вот - вернемся к моему вопросу :) Как бы это автоматизировать??? :)

А в чем проблема? Читайте доки иногда.

Bat - файл, запускаемый системным шедулером, когда никто не работает,
или руками:

net send * Кто не спрятался - я не виноват
dbunload ......
net stop имя сервиса
move файл.db безопасное_место
move файл.log безопасное_место
dbinit ... файл.db
net start имя сервиса
dbisql ......

Все. Можно еще добавить обработку ошибок типа if errorlevel ... и т.п.,
но это уже в форум про системное администрирование.

Вместо многоточий вставить необходимые параметры.
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921310
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
> net send * Кто не спрятался - я не виноват
> dbunload ......
> net stop имя сервиса

Забыл добавить:
attrib -R файл.db
attrib -R файл.log

> move файл.db безопасное_место
> move файл.log безопасное_место
> dbinit ... файл.db
> net start имя сервиса
> dbisql ......

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921335
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
iLLer Vadim RomanenkoЧто то, что выбиралось за пару секунд после ребилда, выбирается минут 15.
А вот это уже пахнет отсутствием необходимых индексов. Сразу после ребилда данные отсортированы, поэтому отсутствие индекса не ухудшает ситуацию, но потом, когда база "расколбашена" полностью, отсутствие нужных индексов приводит к постоянной загрузки/выгрузки страниц таблиц в кэш/из кэша, что приводит к увеличению времени выборок.

Это все конечно ясно и понятно, но мы стоим перед диллемой: как бы так все ускорить, чтоб место не пострадало. А как известно, лишний индекс в деле экономии - как нож к горлу... Но сейчас, стоит сказать, пару индексов мы добавили. Но вопрос по теме все же еще остается...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921368
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Александр Гoлдун
Vadim Romanenko пишет:

> Так вот - вернемся к моему вопросу :) Как бы это автоматизировать??? :)

А в чем проблема? Читайте доки иногда.

..................
Все. Можно еще добавить обработку ошибок типа if errorlevel ... и т.п.,
но это уже в форум про системное администрирование.

Вместо многоточий вставить необходимые параметры.

М-да.... Я наверное действительно некорректно поставил вопрос :) Дело в том, что примерно так у нас сейчас все и работает. Но хотелось бы обойтись без опускания базы... Ну или как-то заменить собсно процедуру unload/reload в самом деле...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921386
Vadim Romanenko
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то можно использовать несколько другой подход еще (как делается у нас). Есть пустая база без данных. Берутся скрипты АСА по unload данных. Старая база копируется куда-нить, а в пустую заливаются последние данные...
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32921454
Фотография Александр Гoлдун
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vadim Romanenko пишет:

> М-да.... Я наверное действительно некорректно поставил вопрос :) Дело в
> том, что примерно так у нас сейчас все и работает. Но хотелось бы
> обойтись без опускания базы... Ну или как-то заменить собсно процедуру
> unload/reload в самом деле...

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

> Вообще-то можно использовать несколько другой подход еще (как
> делается у нас). Есть пустая база без данных. Берутся скрипты АСА
> по unload данных. Старая база копируется куда-нить, а в пустую
> заливаются последние данные...

И чем этот подход "несколько другой"? Суть та же, только dbinit заранее
делается. Возможно еще плюс создание структуры без данных.

Еще можно попробовать использовать сжатый файл db + write-файл, но эта
опция в ASA9 объявлена устаревшей и в дальнейшем не будет поддерживаться
Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32925212
rcryo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а можно еще так:
dbunload -ar
-ar This option creates a new database with the same settings as the old database, reloads it, and replaces the old database
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32926236
Vlad_5181
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 rcryo
Подскажите пожалуйста, -ar в какой версии появилась?
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32926242
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad_5181Подскажите пожалуйста, -ar в какой версии появилась?
В 6-й.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32926315
Vlad_5181
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Dim2000
В 6.0.4 вроде нет такого. Весь хелп облазил.
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32926490
Dim2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vlad_5181В 6.0.4 вроде нет такого. Весь хелп облазил.
Есть, есть .

c:\Asa6\win32>dbunload /?

Usage: dbunload [switches] <directory>

Switches (use specified lower-case letter, as shown):
-ac "keyword=value;..." supply database connection parameters for reload
-an <file> create new database and reload
-ar [log dir] rebuild and replace database
-c "keyword=value;..." supply database connection parameters
-d unload data only
-e <list> no data output for listed tables
-ii internal unload, internal reload (default)
-ix internal unload, external reload
-j <count> iteration count for view creation statements
-n no data - schema definition only
-o <file> log output messages to file
-p <char> escape character (default "\")
-q quiet: do not print messages or show windows
-r <file> specify name of generated reload ISQL command file (default "reload.sql")
-t <list> only output the listed tables
-u unordered data
-v verbose messages
-xi external unload, internal reload
-xx external unload, external reload
-y replace existing command file without confirmation

NOTE: <directory> must be specified as a path meaningful to
the database server unless an external unload is used.

RTFM
ASA New Features and Upgrading Guide
CHAPTER 1. Adaptive Server Anywhere 6.0.3

New features

[...погрыз мышь...]

Easier unload and reload The dbunload utility has been enhanced (-ar command-line option) to allow a single-step unload and reload of a database that can be used whether or not your database is involved in replication.

[...погрыз мышь...]
...
Рейтинг: 0 / 0
Автоматизация перестройки БД под АСА 9
    #32926565
Vlad_5181
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В dbunload /? тоже нет.
Наверно у меня патч до 6.0.4 не тот...
...
Рейтинг: 0 / 0
62 сообщений из 62, показаны все 3 страниц
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / Автоматизация перестройки БД под АСА 9
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]