powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
25 сообщений из 55, страница 1 из 3
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781136
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Возник вопрос - в БД существует самопальная временная таблица для сбрасывания в нее промежуточных id, и эта таблица участвуют в других более сложных sql-запросов для увеличения производительности.
Код: sql
1.
2.
3.
4.
5.
CREATE TABLE TMP_TABLE (
    SESSION_ID  ID /* ID = INTEGER NOT NULL */,
    TMP_ID      ID /* ID = INTEGER NOT NULL */
) 
CREATE INDEX TMP_TABLE_IDX1 ON TMP_TABLE (SESSION_ID);


Есть ли смысл с т. зр. производительности вместо самопальной использовать временную таблицу от FB.
Код: sql
1.
2.
3.
4.
5.
CREATE GLOBAL TEMPORARY TABLE TMP_TABLE (
    SESSION_ID  ID /* ID = INTEGER NOT NULL */,
    TMP_ID      ID /* ID = INTEGER NOT NULL */
) ON COMMIT DELETE ROWS;
CREATE INDEX TMP_TABLE_IDX1 ON TMP_TABLE (SESSION_ID);



Очевидный минус в GLOBAL TEMPORARY TABLE от своей в том, что в свою я могу вставить нужные ID закоммитить передать SessionID и из любого места программы прочитать эти ID (также это удобно при отладке) и затем удалить за ненадобностью эти id из tmp_table. Но слышал, что мол GLOBAL TEMPORARY TABLE быстрее работает. На сколько быстрее?
Вообщем есть ли смысл использовать GLOBAL TEMPORARY TABLE вместо своих стандартных?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781155
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Данные из GTT не могут "пересекать границы подключения".
Соответственно, если данные вставляются в одном подключении, а извлекаются в другом - использовать GTT вы не можете.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781157
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovДанные из GTT не могут "пересекать границы подключения".
Соответственно, если данные вставляются в одном подключении, а извлекаются в другом - использовать GTT вы не можете.
Да, это минус GTT (хотя наличие данных в разных подключениях мало когда нужно)
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781160
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну тогда у GTT есть плюс в виде независимости данных в разных подключениях/транзакциях.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781191
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovНу тогда у GTT есть плюс в виде независимости данных в разных подключениях/транзакциях.
мнимый плюс, т.к. независимость данных достигается за счет поля "SESSION_ID" значение которого получается из генератора
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781196
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Это не баг, это фича".
Таблице наплевать откуда взялись данные.
Фактом остаётся то, что два разных коннекта могут положить в GTT разный набор данных, а затем извлечь его простым "select * from таблица".
Плюс это, минус или монопенисуально - уже на ваше усмотрение.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781201
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012независимость данных достигается за счет поля "SESSION_ID" значение
которого получается из генератора
И которое из GTT можно вообще убрать, сэкономив размер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781205
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012-
Да, это минус GTT (хотя наличие данных в разных подключениях мало когда нужно)
это не минус GTT, это их неотъемлемое свойство по определению
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781207
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
m7mfedorov2012-
Да, это минус GTT (хотя наличие данных в разных подключениях мало когда нужно)
это не минус GTT, это их неотъемлемое свойство по определению
Ок. А что касается скорости, действительно ли есть ощутимый прирост производительности или же особой разницы нет?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781218
m7m
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012m7mпропущено...

это не минус GTT, это их неотъемлемое свойство по определению
Ок. А что касается скорости, действительно ли есть ощутимый прирост производительности или же особой разницы нет?
Не знаю, для меня это было вторичным,
первичным же было "упрощение" некоторых алгоритмов

ps/ Совсем субъективно (без всяких измерений и обоснований):
там где использовались псевдо-временные таблицы разницу не ощутил,
впрочем и не ожидал её ощутить, ибо объемы данных совсем не те.

Там где не использовались, но переделали с использование временных таблиц
разница ощутима
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781232
pastor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012m7mпропущено...

это не минус GTT, это их неотъемлемое свойство по определению
Ок. А что касается скорости, действительно ли есть ощутимый прирост производительности или же особой разницы нет?

GTT не плодят мусор. живут в отдельных файлах
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781278
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
pastorживут в отдельных файлах
в каких? FB где-то временно создает свои файл под GTT?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781280
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012 FB где-то временно создает свои файл под GTT?
где-то создает.
doc\sql.extentions\README.global_templorary_tables.txt

p.s. ты задолбал уже на эту тему, честное слово :-) Сколько раз уже тебе тыкать нужно?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781283
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kdvp.s. ты задолбал уже на эту тему, честное слово :-) Сколько раз уже тебе тыкать нужно?
в README.global_temporary_tables.txt ни слово про имя файла
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781285
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задлянафига вам знать имена временных файлов:README.global_temporary_tables.txtData and index pages of all of the GTTs instances are placed in separate temporary files?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781296
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorov,
Скажите, пожалуйста, производим вставку данных в таблицу, но транзакцию не commit'ем - как ведет себя FB: все равно пишет данные на диск в mydb.fdb или же пока нет коммита хранит в ОЗУ (параметры транзакции read_committed, rec_version, nowait )?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781297
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таблица имеется ввиду обычная (не GTT)
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781300
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Скажите, пожалуйста, производим вставку данных в таблицу, но транзакцию не commit'ем - как ведет себя FBЗадайте вопрос самому себе: что должен делать сервер, в распоряжении которого остался последний мегабайт ОЗУ, если ему вставили гигабайт данных?

P.S. Ответ на вопрос: "А как это работает?" находится там, где вы упорно не желаете читать.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781302
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. Sidorovесли ему вставили гигабайт данных?
Спасибо, правильно ли я Вас понял, что сервер не скидывает данные в БД и хранит их в ОЗУ пока не вызвали commit у активной транзакции или же пока ОЗУ не начнет заканчиваться?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781305
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Спасибо, правильно ли я Вас понял, что сервер не скидывает данные в БД и хранит их в ОЗУ пока не вызвали commit у активной транзакции или же пока ОЗУ не начнет заканчиваться?Если из А следует Б, то это ещё не означает, что из Б следует А.
Политику кэширования определяют многие факторы.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781311
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Basil A. SidorovПолитику кэширования определяют многие факторы.
Загадки какие-то, можно ли хотя бы сказать что в большинстве случаев поведение FB будет таким:
сервер не скидывает данные в БД и хранит их в ОЗУ пока не вызвали commit у активной транзакции или же пока ОЗУ не начнет заканчиваться?
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781312
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012Загадки какие-то, можно ли хотя бы сказать что в большинстве случаев поведение FB будет такимНет, не можно: пишите две реализации, тестовый сценарий и проверяете всё, что вас интересует на типичных данных вашего приложения.
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781548
fedorov2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С большим интересом выслушаю мнение и других участников
...
Рейтинг: 0 / 0
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
    #38781552
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
fedorov2012,

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

в каталоге TEMP

Если каталог TEMP лежит на отдельном физическом диске от файла БД, то получим возможный прирост производительности. Плюсом к отсутствию мусора в основном файле БД.
...
Рейтинг: 0 / 0
25 сообщений из 55, страница 1 из 3
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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