powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
25 сообщений из 55, страница 2 из 3
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781598
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pastor, а не будет ли минусом в производительности, что GTT работает через файлы, а обычные таблицы через ОЗУ?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781603
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

хватит чушь нести
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781620
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему чушь то?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781634
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Почему чушь то?
Источник информации о том, что "GTT работает через файлы, а обычные таблицы через ОЗУ" есть?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781635
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

потому что данные обычных таблиц тоже живут в файле, только в файле БД. Про ОЗУ это исключительно твоя фантазия.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781692
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012pastor, а не будет ли минусом в производительности, что GTT работает через файлы, а обычные таблицы через ОЗУ?

всеми слабыми своими силами удерживаю себя от троллинга.

GTT файлы в точности такие же как и файлы БД, только они
1. временные, в т.ч. с точки зрения ОС
2. лежат в каталоге для временных файлов

во всем остальном они работают через тот же самый нерезиновый страничный кэш, с теми же самыми стратегиями использования памяти.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781744
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pastorGTT файлы в точности такие же как и файлы БД, только они
1. временные, в т.ч. с точки зрения ОС
2. лежат в каталоге для временных файлов

во всем остальном они работают через тот же самый нерезиновый страничный кэш, с теми же самыми стратегиями использования памяти.
Всем спасибо за советы, решено отказаться от GTT т.к. явных преимуществ в производительности не видно, но огромный минус это отладка sql-запросов с использованием GTT особенно когда GTT заполняется на клиенте
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781745
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вместо GTT решено использовать свою временную таблицу (стандартную)
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781758
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

решил изобрести велосипед. Ждём вопросов почему база распухла и откуда берутся тормоза.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781768
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Всем спасибо за советы, решено отказаться от GTT т.к. явных преимуществ в производительности не видно, но огромный минус это отладка sql-запросов с использованием GTT особенно когда GTT заполняется на клиенте

"Нравится" мне категоричность выводов
Ну вставил-бы "по моему мнению" или "в моем случае"
и претензий не было-бы никаких
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781836
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfedorov2012,

решил изобрести велосипед. Ждём вопросов почему база распухла и откуда берутся тормоза.
кстати до этого база работала на FB 2.0 все ок - не распухла (tmp_table всегода оказывалась пустой) да и распухать неоткуда т.к. моя временная таблица используется на select без коммита транзакции, поэтому даже если возникнет дисконект все равно мусора не возникнет
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781838
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7m, естественно все что здесь мною пишется это чисто мои мысли
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781843
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012решено отказаться от GTT т.к. явных преимуществ в производительности не виднобред какой-то. Как же не видно, если при наличии ОЗУ ОСь не будет их материализовать на диске, а для стационарных таблиц это будет сделано обязательно, а при sinc режиме еще и всенепременнейше сию минуту. дисковое ИО это не аргумент?
fedorov2012отладка sql-запросов с использованием GTTна время отладки делается стандартная таблица в тестовой БД, после отладки в рабочую БД идет ГТТ.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781852
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012моя временная таблица используется на select без коммита транзакции, поэтому даже если возникнет дисконект все равно мусора не возникнет

что такое мусор по твоему? Я тебе про версии записей говорил, а не про ненужные записи.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781885
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ivan_PisarevskyКак же не видно, если при наличии ОЗУ ОСь не будет их материализовать на диске, а для стационарных таблиц это будет сделано обязательно
1. GTT работает через временные файлы
2. FB не дура, сбрасывать данные она будет в большинстве случаев, если идет комиит транзакции или ОЗУ заканчивается
3. Сделан емкий тест - разницы в производительности не замечено.


Ivan_Pisarevskyна время отладки делается стандартная таблица в тестовой БД, после отладки в рабочую БД идет ГТТ.
ага, а если это стек вызовом хранимых процедур ссылающиеся на tmp_table - все перекомпилировать на новую таблицу стандартную tmp_table2 - ну и зачем такой огород - ради чего, если нет очевидных плюсов GTT
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781892
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисчто такое мусор по твоему? Я тебе про версии записей говорил, а не про ненужные записи.
версий записей не возникает т.к.
1) транзакция не коммититься
2) при первом же select'e tmp_table все подчищается
3) select вызывается сразу же после вставки промежуточных id'шников в tmp_table т.к.после её заполнения она сразу же используется в select'ах
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781897
Фотография roadster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012моя временная таблица используется на select без коммита транзакциив сессии идёт вставка, в твою таблицу, а затем селект? и это делается в одной транзакции? а другие данные обрабатываются в другой транзакции? получается, что данные между разными транзакциями ты перекидываешь на клиенте?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781915
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,


>> 1) транзакция не коммититься

А что же делается ROLLBACK? Впрочем это не имеет значения.

>> 2) при первом же select'e tmp_table все подчищается

так у тебя же фильтрация идёт по сессиям. Значит почиститься она теоретически может только в своей сессии и то при следующем выполнении.

>> 3) select вызывается сразу же после вставки промежуточных id'шников в tmp_table т.к. после её заполнения она сразу же используется в select'ах

сборка мусора может начаться только после завершения текущей транзакции. Т.е. твой select будет делать сборку мусора только в новой транзакции
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781916
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov20123. Сделан емкий тест - разницы в производительности не замечено.Ты DELETE не забыл убрать из своего ёмкого теста ?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38782050
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
roadsterfedorov2012моя временная таблица используется на select без коммита транзакциив сессии идёт вставка, в твою таблицу, а затем селект? и это делается в одной транзакции?
Да! Временная таблица нужна для оптимизации скорости выборки когда join'иться куча таблиц - например, пользователь отмечает нужные записи галочкой и формирует отчет - выборка сделается только по этим записям
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38782063
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисfedorov2012,
А что же делается ROLLBACK?

естественно, данные мне нужны для выборки (например сформировать отчет0

Симонов Денистак у тебя же фильтрация идёт по сессиям. Значит почиститься она теоретически может только в своей сессии и то при следующем выполнении.

работа каждой сессии завершается вызовом select'a запроса в котором и участвует наш tmp_table.

Симонов Дениссборка мусора может начаться только после завершения текущей транзакции. Т.е. твой select будет делать сборку мусора только в новой транзакции
Даже если и так, это операция мгновенная на тех объемах (10-500 записей) которые вставляются в tmp_table. Но повторюсь сборка мусора выполниться в этом же select'e, схема такая:
1. myTran //create and start
2. Fill tmp_table
3. select * from tmp_table tmp, mytable1 t1, mytable2 t2...
where t1.id=tmp.tmp_id and t2.id2=t1.id2 and...
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38782068
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvladfedorov20123. Сделан емкий тест - разницы в производительности не замечено.Ты DELETE не забыл убрать из своего ёмкого теста ?
не забыл и delete не обязателен т.к. commit'a нет
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38782105
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

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

Вот если бы у тебя Fill tmp_table выполнялся в одной транзакции. А select в другой тогда выполнялась бы. Но для этого необходимо чтобы транзакция которая для Fill tmp_table завершилась. А поскольку у тебя она завершается откатом данные ты не увидишь.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38782133
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов ДенисВот если бы у тебя Fill tmp_table выполнялся в одной транзакции. А select в другой тогда выполнялась бы. Но для этого необходимо чтобы транзакция которая для Fill tmp_table завершилась. А поскольку у тебя она завершается откатом данные ты не увидишь.
Все нормально работает, мусор не накапливается - делаю простой пример
1. стартуем транзакцию
2. заполняем tmp_table
3. выполняем select sql-запрос с участием tmp_table для формирования отчета.
4. закрываем транзакцию с откатом.
5. Смотрим статистику базы через IBExpert левых версий 0.
ч.т.д.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38782204
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012делаю простой пример
Ты делаешь слишком простой пример. Undo log не переполняется и при откате транзакции она
сама удаляет всё, что изменила в базе.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 2 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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