|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Потом под 3.0 скриптами создал базу и перекинул туда всю информацию. Ага, а индексы и констрейны, конечно же, создавал ещё до закачки данных. Это неправильная идея. А разве индексы и связи создаются не на стадии создания таблицы? Ведь любая база в начальный момент времени пуста. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:09 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ... А разве индексы и связи создаются не на стадии создания таблицы? Ведь любая база в начальный момент времени пуста. Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки. Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера. ... Что мешает перенеси момент создания индексов "на потом"? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 20:23 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 ... А разве индексы и связи создаются не на стадии создания таблицы? Ведь любая база в начальный момент времени пуста. Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки. Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера. ... Что мешает перенеси момент создания индексов "на потом"? Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Загрузить данные в таблицы в правильной последовательности менее геморойная задача. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 21:35 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39, можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно - после создания таблиц из скрипта сделать gbak -b / gbak -c -i то есть, не активировать индексы в конце рестора. Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует). Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 21:45 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Тот, кто не имеет мастер-скрипта, должен страдать. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 22:05 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 22:07 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 Такой вопрос. Перевел базу на версию 3.0. Сначала под 1.5 в IBExpert выдернул метаданные и данные в скрипты. Потом под 3.0 скриптами создал базу и перекинул туда всю информацию. Запустил клиент, тупит. Нашел тупящую процедуру и то место в ней которое тупит. Простенький запрос выполняется 600мс. Делаю бэкап/ресторе и запрос перестает тупить, выполняется как обычно 0мс. Вопрос - почему тупило до Бэкап/Ресторе? Если создать индекс, то ему при отсутствии записей выставляется статистика "0". При добавлении записей статистика автоматически не пересчитывается, поэтому при построении плана запроса мог влезть неудачный индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.02.2020, 23:31 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
СПМ> Кстати, (w)isql экстрактит скрипт создания метаданных разумно - СПМ> сначала таблицы с РК, а все прочие констрайнты и индексы потом Так и IBE так же делает вроде. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 15:05 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
kdv RRR39, можно по всякому сделать. Например, если переносить данные ibpump-ом, то можно - после создания таблиц из скрипта сделать gbak -b / gbak -c -i то есть, не активировать индексы в конце рестора. Потом ибпампом перекинуть данные (на момент заливки он деактивирует все триггеры, потом активирует). Потом активировать все индексы - alter index ... active. Разве что надо сначала все ПК, а потом уже все ФК. Насколько я понимаю, ibpump переносит данные из базы в базу. Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию. Поэтому я сначала выгружал данные в скрипты, потом останавливал FB 1.5, запускал FB 3.0 и загружал данные в новую базу. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 17:09 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Разница выполения одного и того же запроса в двух разных версиях базы. Выполнялся с целью проверить правильность переноса данных. 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%. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 17:52 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Насколько я понимаю, ibpump переносит данные из базы в базу. Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию. какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ. Я сходу 4 варианта привел. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:17 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
kdv RRR39Насколько я понимаю, ibpump переносит данные из базы в базу. Проблема в том, что FB 3.0 не открывает старую базу, матерится на версию. какая же это проблема? Например, 2 embedded. Или два ФБ на разных портах. Или один embedded, и один сервер. Или 2 компа с разными ФБ. Я сходу 4 варианта привел. Возможно. Но мне более привычен перенос через скрипты. Если бы база была на несоколько гигабайт, тогда наверно пришлось бы что то другое изобретать, а так и скриптов хватило. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:29 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Reads from disk to cache = 4 171 614 Fetches from cache = 822 377 863 За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 18:31 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ёёёёё пропущено... Индексы и констреинты как минимум тормозят операции модификации, то есть, процесс заливки. Более того, их наличие налагает ограничение на порядок заливки данных: например, нельзя занести детальные записи, пока не созданы их мастера. ... Что мешает перенеси момент создания индексов "на потом"? Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Загрузить данные в таблицы в правильной последовательности менее геморойная задача. Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 22:42 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Старый плюшевый мишка Кстати, (w)isql экстрактит скрипт создания метаданных разумно - сначала таблицы с РК, а все прочие констрайнты и индексы потом, альтерами-криейтами. Что удобно. Порезал скрипт на куски, выполнил первый, залили данные, погнал дальше. И IBExpert так. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 22:58 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Портянки пространных рассуждений, вместо того, чтобы после массированной заливки данных пересчитать статистику индексов. Статистику, кстати, стОит пересчитывать не только после первоначальной заливки данных. Тройка к статистике относится более трепетно и употребляет оную по назначению гораздо чаще и разумнее предыдущих версий. Не осилившие пипку в эксперте про пересчет статистики может сделать базе рэкап-рестор, тоже помогает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.02.2020, 23:16 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov RRR39Reads from disk to cache = 4 171 614 Fetches from cache = 822 377 863 За такие запросы надо руки отрывать. У тебя база на террабайт с миллиардом записей внутри? Нет, база <200 Мб. Запрос действительно геморойный, но так надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 05:13 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 пропущено... Таблицы базы создавалась выгруженным скриптом. Править скрипт, что бы создать таблицы без индексов, что бы потом создавать заново индексы, это делать двойную работу. Загрузить данные в таблицы в правильной последовательности менее геморойная задача. Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли? В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 05:27 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. Если при выгрузке метаданных указать что нужно извлекать в скрипт и собственно данные, в указанных таблицах, то создается скрипт в котором: - создаются таблицы - в них заливаются данные - на таблицы создаются ключи, индексы, и т.п. Затык может быть даже и на одной таблице, если она ссылается сама на себя. Код: plsql 1. 2. 3. 4. 5. 6. 7. 8.
В таблице загружены данные IDID_PARENTNAME1NULLкорень2NULLкорень31ветка Уже сразу здесь есть требование что бы данные загружались именно в том порядке как указано, сначала корневые, потом ветки. Если поредактировать таблицу с перестройкой дерева и получить такую структуру: IDID_PARENTNAME13ветка2NULLкорень3NULLкорень То вставка в порядке ID уже будет невозможна. Т.е. поддержка возрастания ID ничего не гарантирует. В случаях посложнее может быть вообще ситуация что запись сначала вставляется, потом апдейтится с указанием ссылки. И может быть так что одними insert при живых констрейнтах ситуацию не воспроизвести. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 06:44 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39 ёёёёё пропущено... Почему "выгруженный скрипт" создается не сразу так, как надо? Не ты его создаешь, что ли? В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 09:01 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
RRR39Запрос действительно геморойный, но так надо. Ну если тебе надо чтобы база работала медленно, то о чём тогда этот топик? Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:07 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Dimitry Sibiryakov, его мелкую базу в 200 МБайт вообще можно целиком в кеш 3.0 SS загнать. Я думаю его запрос ещё в 2 раза ускорится. Но запрос всё равно явно попахивает. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:12 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
Симонов ДенисЯ думаю его запрос ещё в 2 раза ускорится. Не в 2, там, скорее, на порядки будет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
27.02.2020, 13:17 |
|
Скорость работы Fireberd по сети
|
|||
---|---|---|---|
#18+
ёёёёё RRR39 пропущено... В IBExpert есть функция "Извлечь метаданные". Она и формирует скрипт. Опции которая указала бы не выгружать индексы и связи, там вроде нет. Да и вообще, я не думал, что будет какой то затык с индексами, потому что индексы и связи обычно создаются на стадии создания таблицы, и уже потом в таблицу попадают какие бы то ни было данные. IBExpert как раз формирует скрипт так, что индексы и проч. создаются после заливки данных. Возможно. Я данные выгружал отдельно поэтому не знаю. У меня в скрипте сначала таблицы, уники, ключи, связи и индексы. Как я уже говорил, технически можно было закоментить ключи, уники, связи и прочее, и создать их позднеее, после заливки данных. Но тогда я не догадывался о возможной проблеме с индексами. ... |
|||
:
Нравится:
Не нравится:
|
|||
28.02.2020, 17:59 |
|
|
start [/forum/topic.php?fid=40&startmsg=39930034&tid=1560425]: |
0ms |
get settings: |
8ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
126ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
59ms |
get tp. blocked users: |
1ms |
others: | 280ms |
total: | 507ms |
0 / 0 |