Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / АСА 9. Скорострельность. Не могу понять. / 25 сообщений из 25, страница 1 из 1
09.08.2006, 17:00
    #33908730
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
ASA 9

имееца 2 связные по FK таблицы. в первой - 10 000 записей. в подчиненной - 1 100 000 записей. добавление в первую таблицу 1й записи с добавлением во вторую таблицу 300 записей происходит 12 минут.

поделитесь мыслями и соображениями... что делать?
...
Рейтинг: 0 / 0
09.08.2006, 17:05
    #33908755
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
может срабатывают тригеры с тяжелыми расчетами?
З.Ы. трудно без доп. информации гадать
...
Рейтинг: 0 / 0
09.08.2006, 17:12
    #33908783
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
Каков размер кэша, наличие индексов, кол-во и качество полей таблиц, железо, нагрузка на сервер от других юзеров. Ну и как уже упоминалось наличие тригеров.
???
...
Рейтинг: 0 / 0
09.08.2006, 17:14
    #33908793
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
нет, трудных расчетов в тригере нет... для первой таблицы вычисляется текстовый номер в зависимости от даты и предыдущего номера, плюс присваиваеца PK ид по схеме МАКС+1

для второй таблицы происходит проверка наличия связных для FK записей по двум таблицам и присваивание PK ид по всё тому же класическому МАКС+1

какие нужны до данные?
...
Рейтинг: 0 / 0
09.08.2006, 17:30
    #33908862
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
К своим предыдущим вопросам добавляю еще один, а нах "МАХ+1"? По-нормальному не делается?
...
Рейтинг: 0 / 0
09.08.2006, 17:34
    #33908880
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
база целиком помещается в кэш?
...
Рейтинг: 0 / 0
09.08.2006, 17:35
    #33908882
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
согласен с iLLer, наверное все-таки max+1 заставляет сервак пыхтеть
...
Рейтинг: 0 / 0
09.08.2006, 17:38
    #33908889
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
iLLer wrote:

> К своим предыдущим вопросам добавляю еще один, а нах "МАХ+1"?

Люди не верят разработчикам сервера, настоятельно рекомендовавшим
использовать автоинкремент .
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
09.08.2006, 17:54
    #33908936
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
iLLerКаков размер кэша, наличие индексов, кол-во и качество полей таблиц, железо, нагрузка на сервер от других юзеров. Ну и как уже упоминалось наличие тригеров.
???

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

кэш - 512 метров
индексы стандартные - по примари и форайну...
железо - 2 головы ксеон по 3ггц, 2 гига оперативки, скази на 15000 в пятом рейде... вродь нормальное
юзеры - 15-20 человек...

типы полей: (куда идет запись одной строки)
1я таблица:
10 таймштампов
10 интегеров
пара ограниченных чаров (макс 400)
пяток флоатов

2я таблица: (куда идет запись 300 строк)
6 интегеров
пара ограниченных чаров (макс 200)
и пара флоатов

что еще надо?
...
Рейтинг: 0 / 0
09.08.2006, 17:59
    #33908954
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
в догонку:

кроме этой базы на данном сервере вертяца еще и другие на 7ке... но общая нагрузка - минимальная... в среднем не больше 5%.
...
Рейтинг: 0 / 0
09.08.2006, 18:28
    #33909042
Рыжий Кот
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
попробуйте поискать свой bottleneck

хотя бы так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
BEGIN
DECLARE i int;
SET i =  1 ;
WHILE i <=  300  LOOP
    --select max(id) + 1 from mytable;
    SET i = i +  1 ;
END LOOP;
END;

если время будет измеряться минутами, значит max(id) виноват
...
Рейтинг: 0 / 0
09.08.2006, 18:37
    #33909081
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
Все вроде в порядке. Остаются тригеры.
Отлаживайте их, добавьте "message current timestamp to console" до и после подозрительных на торможение инструкций, а потом анализируйте.
...
Рейтинг: 0 / 0
09.08.2006, 19:02
    #33909152
Dim2000
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
iLLer wrote:

> Все вроде в порядке. Остаются тригеры.
> Отлаживайте их, добавьте "message current timestamp to console" до и
> после подозрительных на торможение инструкций, а потом анализируйте.

А не проще включить профайлинг и посмотреть, какая [beep] занимает такую
кучу времени :)?
Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
09.08.2006, 19:03
    #33909154
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
у меня еще в клиентской части (powerbuilder) происходят вычисления... но тож вроде не сложные...

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

всем участникам - спасибо.

если у кого-то будут интересные мысли - с удовольстивем почитаю...
...
Рейтинг: 0 / 0
10.08.2006, 10:18
    #33909788
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
а почему не использовать вместо max+1

select first ID+1 from Table order by ID desc

ведь ID - РК (т.е. уникальный индеск)
на крайняк продублировать его индексом по desc

гораздо быстрее чем агрегатор мах ?
...
Рейтинг: 0 / 0
10.08.2006, 10:28
    #33909818
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
L0cat0rа почему не использовать вместо max+1

select first ID+1 from Table order by ID desc

ведь ID - РК (т.е. уникальный индеск)
на крайняк продублировать его индексом по desc

гораздо быстрее чем агрегатор мах ?

я уже исправился, что мы не используем макс для получения ПК
есь таблица, в которой храница только одно интегеровое значение... перед выборкой это значение инкрементируеца.

собсно так сложилось исторически...
...
Рейтинг: 0 / 0
10.08.2006, 12:20
    #33910180
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
собственно аналогично только таблиц поболе - с раздачей диапазонов .. etc
отличается только тем, что функция получения ID берет готовый а потом апдейтит на следующий ...
кроме тригерной логики и индесков на таблицах еще стоит попробовать
вставлять меньшими кусками с комитом между ними - как правило помагает.
...
Рейтинг: 0 / 0
10.08.2006, 12:36
    #33910238
iLLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
L0cat0rвставлять меньшими кусками с комитом между ними - как правило помагает.
А вот тут не уверен, что это так. Вроде 300 инсертов + один коммит быстрее, чем 300 инсертов + 300 коммитов (ну или 100).

Профайлер конечно поможет, просто я по привычке с 6-ки.

А если еще и какие-то действия в клиенте происходят, то изначальный вопрос поставлен неправильно:
rashmanдобавление в первую таблицу 1й записи с добавлением во вторую таблицу 300 записей происходит 12 минут...что делать?
звучит, так, как будто клиент не причем. Сначала оттестите серверную часть, повставляйте записи скриптом из ISQL, а потом за клиента хватайтесь.
...
Рейтинг: 0 / 0
10.08.2006, 12:45
    #33910271
antand
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
iLLer
звучит, так, как будто клиент не причем. Сначала оттестите серверную часть, повставляйте записи скриптом из ISQL, а потом за клиента хватайтесь.

Присоединяюсь. Недавно сам на такой же случай нарвался с Insert.
Клиентское приложение тормозило, иногда вставлясь запись в таблицу каталога товаров более 5 минут. Стал проверять и выяснил, что сам Insert отрабатывал ка из пушки(хотя там и индексов хватает и триггеры подвешаны и т.д.)
Оказалось что дело в том что, клиентское приложение пыталось спозиционироваться после вставки на эту новую запись(использовался BDE), а если эта запись оказывалась далеко не первой в обновленном наборе, то достижение ее простым перебором тормозило соответственно.
...
Рейтинг: 0 / 0
10.08.2006, 12:45
    #33910273
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
L0cat0rвставлять меньшими кусками с комитом между ними - как правило помагает.

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

iLLer
Сначала оттестите серверную часть, повставляйте записи скриптом из ISQL, а потом за клиента хватайтесь.

чем собсно сёдни и занимаюсь...
...
Рейтинг: 0 / 0
10.08.2006, 13:09
    #33910357
L0cat0r
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
iLLer L0cat0rвставлять меньшими кусками с комитом между ними - как правило помагает.
А вот тут не уверен, что это так. Вроде 300 инсертов + один коммит быстрее, чем 300 инсертов + 300 коммитов (ну или 100).


Ну это уже проверялось и не раз
вставка одной записи в одну таблицу + порожденная пачка 500-1000 записей
в другую отрабатывало меньше секунды
после тысячи-другой записей в первую это уже потянуло до 5 секунд
и так далее
благо в курсоре поставил комит после каждой сотни записей по первой таблице - в результате постоянная скорость в районе секунды на любом объеме

ИМХО, с собственного опыта.
...
Рейтинг: 0 / 0
11.08.2006, 01:36
    #33911891
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
Посмотреть есть ли FK на родительскую таблицу. Если есть, создать в родительской индекс на поля, на которые ссылается FK.

Кстати на дочерней таблице также надо иметь индекс, пригодится при удалении родительских записей.
...
Рейтинг: 0 / 0
11.08.2006, 10:36
    #33912367
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
MasterZivПосмотреть есть ли FK на родительскую таблицу. Если есть, создать в родительской индекс на поля, на которые ссылается FK.

Кстати на дочерней таблице также надо иметь индекс, пригодится при удалении родительских записей.

фк ессно есь. и ссылаеца он на пк в родителе.
индексы тоже есь - писал выше - стандартные
...
Рейтинг: 0 / 0
11.08.2006, 18:04
    #33914104
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
MasterZivсоздать в родительской индекс на поля, на которые ссылается FK.А вот это в ASA делать не стоит. Потому что в ASA ты можешь сделать FK только на primary key или unique набор полей. А на них ASA строит индексы автоматически. И индекс созданый вручную будет дублировать автоматический со всеми вытекающими последствиями по работе с двумя идентичными индексами.
...
Рейтинг: 0 / 0
12.08.2006, 11:28
    #33914544
rashman
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
АСА 9. Скорострельность. Не могу понять.
Всем спасибо!

Провели ряд тестов. База ни при чем. Теперь ломаю голову над тем, что делать с клиентом (PowerBuilder).

В принципе, тема закрыта.
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / АСА 9. Скорострельность. Не могу понять. / 25 сообщений из 25, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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