powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неиспользуемые домены
39 сообщений из 39, показаны все 2 страниц
Неиспользуемые домены
    #38542673
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой запрос:
Код: sql
1.
2.
3.
4.
SELECT *
FROM RDB$FIELDS D
WHERE D.RDB$SYSTEM_FLAG = 0
  AND NOT EXISTS( SELECT * FROM RDB$RELATION_FIELDS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )



Возвращает более ста тысяч записей. RDB$FIELD_NAME всегда STARTING WITH "RDB$".
Дело в том, что из-за этих доменов очень долго выполняются операции backup/restore.
У меня вопрос к гуру: правильно ли я понимаю, что эти домены просто не исользуются?
Если да, то можно ли эти домены просто грохнуть? Путем замены в таком запросе "SELECT *" на "DELETE"? Это ничем не грозит?

Да, и еще один полезный вопрос: откуда они могли взяться, эти 100 тыщ неиспользующихся доменов?

ФБ 2.1.1.17910

Код: plaintext
1.
MON$DATABASE_NAME           MON$PAGE_SIZE  MON$ODS_MAJOR  MON$ODS_MINOR  MON$OLDEST_TRANSACTION  MON$OLDEST_ACTIVE  MON$OLDEST_SNAPSHOT  MON$NEXT_TRANSACTION  MON$PAGE_BUFFERS  MON$SQL_DIALECT  MON$SHUTDOWN_MODE  MON$SWEEP_INTERVAL  MON$READ_ONLY  MON$FORCED_WRITES  MON$RESERVE_SPACE  MON$CREATION_DATE    MON$PAGES    MON$STAT_ID  MON$BACKUP_STATE
D:\RELEASE\MPOS3\M_POS.GDB           4096             11              1                   1 747              1 748                1 748                 1 980             2 048                1                  0              20 000              0                  1                  1  29.01.2014 15:52:51  35 158.0000            1                 0  

Спасибо
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542682
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

неправильно. Когда ты создаёшь таблицу, то даже если ты не указываешь домен, он неявно создаётся. Как раз RDB$<некий номер>. Домены мало влияют на скорость бекапа и рестора
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542686
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
указывай везде пользовательские домены, тогда сервер перестанет плодить системные.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542690
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

DELETE в системных таблицах вообще забудь!!!
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542704
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hello, YuRock!
You wrote on 29 января 2014 г. 19:50:16:

YuRock> Дело в том, что из-за этих доменов очень долго выполняются операции
> backup/restore. зуб дашь?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542780
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисYuRock,

неправильно. Когда ты создаёшь таблицу, то даже если ты не указываешь домен, он неявно создаётся. Как раз RDB$<некий номер>.

Ты думаешь, я этого не знал? Неправильно, знал. Таких доменов в этой базе 1082. И примерно 102000 - доменов, которые не используются в таблицах.

Денис, на будущее, посмотри мой запрос внимательно. Прежде, чем писАть.

Домены мало влияют на скорость бекапа и рестора

Бэкап/ресторе этой базы длится ~30 минут. Из них ~26 минут - уходит на домены.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542783
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockИз них ~26 минут - уходит на домены.Чушь какая-то.
Как мерял ?
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542785
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockИ примерно 102000 - доменов, которые не используются в таблицах.
но используются в хранимых процедурах?

YuRockБэкап/ресторе этой базы длится ~30 минут. Из них ~26 минут - уходит на домены.
есть подозрение, что без ключика -v время поменяется радикально
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542789
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockБэкап/ресторе этой базы длится ~30 минут. Из них ~26 минут - уходит на домены.
Ну потрать полчаса на эксперимент
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542790
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan_Pisarevskyуказывай везде пользовательские домены, тогда сервер перестанет плодить системные.
Иван, спасибо за комментарий, только база уже создана, и экземпляров этой базы - несколько сотен.
Это раз.
Два - сервер не плодит системные. Если он автоматически создан сервером - не значит, что он системный.
Три - полей таблиц, где не указан пользовательский домен - 1082. И скажи мне, Иван, какой отношение твой философский пост имеет к более, чем 100000 доменов, вопрос по которым я задаю?
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542792
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
hvlad,

Мерял на глаз, врать не буду. Только на бэкап/ресторе доменов реально времени уходит намного больше, чем на всё остальное.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542794
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
m7m,

на какой эксперимент?
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542798
dimitr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockТолько на бэкап/ресторе доменов реально времени уходит
или все-таки на вывод 100 тыщ строк в gbak-овский stdout?
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542801
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrно используются в хранимых процедурах?
Нет, забыл сказать, что процедуры используют еще 1720 дометов. Остается еще ~ те же 100 тыщ.

YuRockБэкап/ресторе этой базы длится ~30 минут. Из них ~26 минут - уходит на домены.
есть подозрение, что без ключика -v время поменяется радикально
Возможно, но, во-первых, не хотелось бы - хочется что-то видеть в процессе. Во-вторых - главное не в бэкап/ресторе. Главное, я хочу выкинуль лишние данные из базу. И понять, как они туда попали. И на будущее постараться сделать так, чтобы они туда не попадали.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542803
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockна какой эксперимент?
Backup-restore БЕЗ ключа v, но С ключом m.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542811
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
dimitrYuRockТолько на бэкап/ресторе доменов реально времени уходит
или все-таки на вывод 100 тыщ строк в gbak-овский stdout?
dimitr, я думаю, ты прав. Без -V, конечно, работает намного быстрее. Но это не решает проблему этих записей.

Скажи, пожалуйста, этот запрос дает гарантию, что эти записи можно удалить?

Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM RDB$FIELDS D
WHERE D.RDB$SYSTEM_FLAG = 0
  AND NOT EXISTS( SELECT * FROM RDB$RELATION_FIELDS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )
  AND NOT EXISTS( SELECT * FROM RDB$PROCEDURE_PARAMETERS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542814
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYuRockна какой эксперимент?
Backup-restore БЕЗ ключа v, но С ключом m.
3 секунды.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542819
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockDimitry Sibiryakovпропущено...

Backup-restore БЕЗ ключа v, но С ключом m.
3 секунды. это бэкап. А вот восстановление идет долго. Как закончится - напишу.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542822
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock3 секунды.
А теперь то же самое, но с ключами v И m.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542827
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYuRock3 секунды.
А теперь то же самое, но с ключами v И m.
У меня пока не завершился тест С ключами -C и -M, БЕЗ -V
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542831
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockУ меня пока не завершился тест С ключами -C и -M, БЕЗ -V
Завершился. 17 минут 11 секунд.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542834
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockУ меня пока не завершился тест С ключами -C и -M, БЕЗ -V
Мой ХШ утверждает, что у тебя в базе 100500 развесистых ХП. ССЗБ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542835
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovА теперь то же самое, но с ключами v И m.
2 мин 26 сек
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542844
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovМой ХШ утверждает, что у тебя в базе 100500 развесистых ХП. ССЗБ.
Это не так. Но мысли о параметрах процедур натолкнули меня на то, что я нашел вот такой скрипт (который выполняется при обновлении БД), который, наверно, и приводит к тому, что у меня плодятся неиспользуемые домены:

DELETE FROM RDB$DEPENDENCIES D
WHERE D.RDB$DEPENDENT_TYPE = 5
AND D.RDB$DEPENDED_ON_TYPE = 5
^

DELETE FROM RDB$PROCEDURES^
DELETE FROM RDB$PROCEDURE_PARAMETERS^

CREATE PROCEDURE ...
-- создание всех процедур
COMMIT^

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

Код: sql
1.
2.
3.
4.
5.
DELETE
FROM RDB$FIELDS D
WHERE D.RDB$SYSTEM_FLAG = 0
  AND NOT EXISTS( SELECT * FROM RDB$RELATION_FIELDS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )
  AND NOT EXISTS( SELECT * FROM RDB$PROCEDURE_PARAMETERS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )



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

Если сомневаешься, что там используется, а что не используется - пересоздай базу из скрипта.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542875
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYuRockточно ничего не поламается?
Точно поломается всё. За прямой доступ в системные таблицы надо отрубать руки по самую
задницу.

Хорошо. Я потому и спрашиваю. Тогда такой вопрос: можно ли как-то по-другому удалить эти бесполезные записи? Это на моей тестовой базе их 100 тысяч, а где-то может быть больше.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542879
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисYuRock,

Если сомневаешься, что там используется, а что не используется - пересоздай базу из скрипта.
Это вариант, конечно. Но, надеюсь, не единственный в данном случае.

К тому же этот вариант далеко не всегда подходит - во многих базах бывают таблицы/процедуры сторонних, о которых я не имею понятия. И от этого никуда не деться.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542880
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockсторонних программ
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542882
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

извлекаем скрипт IBExpert`ом (извлечение метаданных вместе с данными) из него же пересоздаём.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542884
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов ДенисYuRock,

извлекаем скрипт IBExpert`ом (извлечение метаданных вместе с данными) из него же пересоздаём.
Отлично, осталось автоматизировать этот процесс :))
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542886
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockСимонов ДенисYuRock,

извлекаем скрипт IBExpert`ом (извлечение метаданных вместе с данными) из него же пересоздаём.
Отлично, осталось автоматизировать этот процесс :))
Я уже не говорю о том, что IBExpert, наверняка, сделает скрипт всех доменов, в том числе - не используемых.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542887
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovТочно поломается всё.
Я, кстати, попробовал на этой базе. Пока работает :)
Но хотелось бы иметь чистую совесть. Делать DROP DOMAIN для каждого - конечно, хорошо. Но такой скрипт придется генерить программно. Да и то не факт, что этот скрипт будет правильным. Т.к. я до сих пор не услышал подтверждения моему подозрению, что все домены

Код: sql
1.
2.
3.
4.
5.
SELECT *
FROM RDB$FIELDS D
WHERE D.RDB$SYSTEM_FLAG = 0
  AND NOT EXISTS( SELECT * FROM RDB$RELATION_FIELDS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )
  AND NOT EXISTS( SELECT * FROM RDB$PROCEDURE_PARAMETERS WHERE RDB$FIELD_SOURCE = D.RDB$FIELD_NAME )



действительно не используются.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542891
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Провёл несколько тестов с DROP/CREATE/RECREATE/ALTER PROCEDURE. Параметры в процедурах - без пользовательских доменов.

Так вот. При RECREATE и ALTER количество доменов (записей в RDB$FIELDS) не увеличивается. При DROP - уменьшаются. При CREATE - увеличиваются. Это всё отлично. Значит, проблему накопления лишних доменов я решу.

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

Таблицы сторонних программ это проблема сторонних программ.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38542912
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovЗря надеешься.
Ну, значит, рискну сделать DELETE FROM RDB$FIELDS, мать его так.
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38543016
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

убьёшь базу
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38543051
Фотография o_v_a
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Денис, да пусть убивает... Лишь бы не боевую. Тестовую-то не жалко :)
...
Рейтинг: 0 / 0
Неиспользуемые домены
    #38543105
WildSery
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockЯ уже не говорю о том, что IBExpert, наверняка, сделает скрипт всех доменов, в том числе - не используемых.
IBExpert не будет пихать в скрипт системные (RDB$) объекты. Как и ISQL не будет.
...
Рейтинг: 0 / 0
39 сообщений из 39, показаны все 2 страниц
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Неиспользуемые домены
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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