powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость работы Fireberd по сети
25 сообщений из 111, страница 4 из 5
Скорость работы Fireberd по сети
    #39930034
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

RRR39Потом под 3.0 скриптами создал базу и перекинул туда всю информацию.

Ага, а индексы и констрейны, конечно же, создавал ещё до закачки данных. Это неправильная
идея.


А разве индексы и связи создаются не на стадии создания таблицы?
Ведь любая база в начальный момент времени пуста.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930036
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
...
А разве индексы и связи создаются не на стадии создания таблицы?
Ведь любая база в начальный момент времени пуста.

Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки.
Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера.
...
Что мешает перенеси момент создания индексов "на потом"?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930054
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
...
А разве индексы и связи создаются не на стадии создания таблицы?
Ведь любая база в начальный момент времени пуста.

Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки.
Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера.
...
Что мешает перенеси момент создания индексов "на потом"?


Таблицы базы создавалась выгруженным скриптом.
Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу.
Загрузить данные в таблицы в правильной последовательности менее геморойная задача.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930056
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39,

можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно
- после создания таблиц из скрипта сделать gbak -b / gbak -c -i
то есть, не активировать индексы в конце рестора.
Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует).
Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930057
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Таблицы базы создавалась выгруженным скриптом.
Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново
индексы, это делать двойную работу.

Тот, кто не имеет мастер-скрипта, должен страдать.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930059
Фотография Старый плюшевый мишка
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930082
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Такой вопрос.
Перевел базу на версию 3.0.
Сначала под 1.5 в IBExpert выдернул метаданные и данные в скрипты.
Потом под 3.0 скриптами создал базу и перекинул туда всю информацию.
Запустил клиент, тупит. Нашел тупящую процедуру и то место в ней которое тупит.
Простенький запрос выполняется 600мс.
Делаю бэкап/ресторе и запрос перестает тупить, выполняется как обычно 0мс.

Вопрос - почему тупило до Бэкап/Ресторе?


Если создать индекс, то ему при отсутствии записей выставляется статистика "0". При добавлении записей статистика автоматически не пересчитывается, поэтому при построении плана запроса мог влезть неудачный индекс.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930217
Гаджимурадов Рустам
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
СПМ> Кстати, (w)isql экстрактит скрипт создания метаданных разумно -
СПМ> сначала таблицы с РК, а все прочие констрайнты и индексы потом

Так и IBE так же делает вроде.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930261
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
RRR39,

можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно
- после создания таблиц из скрипта сделать gbak -b / gbak -c -i
то есть, не активировать индексы в конце рестора.
Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует).
Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК.


Насколько я понимаю, ibpump переносит данные из базы в базу.
Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию.
Поэтому я сначала выгружал данные в скрипты, потом останавливал FB 1.5, запускал FB 3.0 и загружал данные в новую базу.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930276
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разница выполения одного и того же запроса в двух разных версиях базы.
Выполнялся с целью проверить правильность переноса данных.

FB 1.5
------ Performance info ------
Prepare time = 0ms
Execute time = 36m 11s 565ms
Avg fetch time = 83 521,73 ms
Current memory = 459 942 128
Max memory = 459 990 128
Memory buffers = 2 048
Reads from disk to cache = 3 643 606
Writes from cache to disk = 0
Fetches from cache = 1 284 223 696


FB 3.0
------ Performance info ------
Prepare time = 0ms
Execute time = 22m 32s 467ms
Avg fetch time = 52 017,96 ms
Current memory = 11 992 240
Max memory = 80 144 784
Memory buffers = 2 048
Reads from disk to cache = 4 171 614
Writes from cache to disk = 1
Fetches from cache = 822 377 863


Разница 14 минут. Экономия времени 40%.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930284
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Насколько я понимаю, ibpump переносит данные из базы в базу.
Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию.
какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ.
Я сходу 4 варианта привел.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930290
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdv
RRR39Насколько я понимаю, ibpump переносит данные из базы в базу.
Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию.

какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ.
Я сходу 4 варианта привел.

Возможно.
Но мне более привычен перенос через скрипты.
Если бы база была на несоколько гигабайт, тогда наверно пришлось бы что то другое изобретать, а так и скриптов хватило.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930291
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Reads from disk to cache = 4 171 614
Fetches from cache = 822 377 863

За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930351
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
ёёёёё
пропущено...

Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки.
Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера.
...
Что мешает перенеси момент создания индексов "на потом"?


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

Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли?
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930355
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Старый плюшевый мишка
Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше.


И IBExpert так.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39930359
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Портянки пространных рассуждений, вместо того, чтобы после массированной заливки данных пересчитать статистику индексов. Статистику, кстати, стОит пересчитывать не только после первоначальной заливки данных. Тройка к статистике относится более трепетно и употребляет оную по назначению гораздо чаще и разумнее предыдущих версий.
Не осилившие пипку в эксперте про пересчет статистики может сделать базе рэкап-рестор, тоже помогает.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931383
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

RRR39Reads from disk to cache = 4 171 614
Fetches from cache = 822 377 863

За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри?


Нет, база <200 Мб.
Запрос действительно геморойный, но так надо.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931384
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
пропущено...


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

Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли?


В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931388
fraks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.


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

- создаются таблицы
- в них заливаются данные
- на таблицы создаются ключи, индексы, и т.п.

Затык может быть даже и на одной таблице, если она ссылается сама на себя.

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
CREATE TABLE SA (
    ID         INTEGER NOT NULL,
    ID_PARENT  INTEGER,
    NAME       VARCHAR(250) DEFAULT ''
);

ALTER TABLE SA ADD CONSTRAINT SA_PK PRIMARY KEY (ID);
ALTER TABLE SA ADD CONSTRAINT SA_FK_ID_PARENT FOREIGN KEY (ID_PARENT) REFERENCES SA (ID);



В таблице загружены данные

IDID_PARENTNAME1NULLкорень2NULLкорень31ветка

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

Если поредактировать таблицу с перестройкой дерева и получить такую структуру:

IDID_PARENTNAME13ветка2NULLкорень3NULLкорень

То вставка в порядке ID уже будет невозможна.
Т.е. поддержка возрастания ID ничего не гарантирует.

В случаях посложнее может быть вообще ситуация что запись сначала вставляется, потом апдейтится с указанием ссылки. И может быть так что одними insert при живых констрейнтах ситуацию не воспроизвести.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931412
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
ёёёёё
пропущено...

Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли?


В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.


IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931645
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39Запрос действительно геморойный, но так надо.

Ну если тебе надо чтобы база работала медленно, то о чём тогда этот топик?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931651
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

его мелкую базу в 200 МБайт вообще можно целиком в кеш 3.0 SS загнать. Я думаю его запрос ещё в 2 раза ускорится.
Но запрос всё равно явно попахивает.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39931657
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисЯ думаю его запрос ещё в 2 раза ускорится.

Не в 2, там, скорее, на порядки будет.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932322
RRR39
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ёёёёё
RRR39
пропущено...


В IBExpert есть функция "Извлечь метаданные".
Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет.
Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные.


IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных.


Возможно. Я данные выгружал отдельно поэтому не знаю. У меня в скрипте сначала таблицы, уники, ключи, связи и индексы.
Как я уже говорил, технически можно было закоментить ключи, уники, связи и прочее, и создать их позднеее, после заливки данных.
Но тогда я не догадывался о возможной проблеме с индексами.
...
Рейтинг: 0 / 0
Скорость работы Fireberd по сети
    #39932337
ёёёёё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RRR39
Возможно. Я данные выгружал отдельно поэтому не знаю.

Ну так посмотри, ещё не поздно.
...
Рейтинг: 0 / 0
25 сообщений из 111, страница 4 из 5
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Скорость работы Fireberd по сети
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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