|
|
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Добрый день. Возник вопрос - в БД существует самопальная временная таблица для сбрасывания в нее промежуточных id, и эта таблица участвуют в других более сложных sql-запросов для увеличения производительности. Код: sql 1. 2. 3. 4. 5. Есть ли смысл с т. зр. производительности вместо самопальной использовать временную таблицу от FB. Код: sql 1. 2. 3. 4. 5. Очевидный минус в GLOBAL TEMPORARY TABLE от своей в том, что в свою я могу вставить нужные ID закоммитить передать SessionID и из любого места программы прочитать эти ID (также это удобно при отладке) и затем удалить за ненадобностью эти id из tmp_table. Но слышал, что мол GLOBAL TEMPORARY TABLE быстрее работает. На сколько быстрее? Вообщем есть ли смысл использовать GLOBAL TEMPORARY TABLE вместо своих стандартных? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 18:01 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Данные из GTT не могут "пересекать границы подключения". Соответственно, если данные вставляются в одном подключении, а извлекаются в другом - использовать GTT вы не можете. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 18:35 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovДанные из GTT не могут "пересекать границы подключения". Соответственно, если данные вставляются в одном подключении, а извлекаются в другом - использовать GTT вы не можете. Да, это минус GTT (хотя наличие данных в разных подключениях мало когда нужно) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 18:38 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Ну тогда у GTT есть плюс в виде независимости данных в разных подключениях/транзакциях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 18:41 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovНу тогда у GTT есть плюс в виде независимости данных в разных подключениях/транзакциях. мнимый плюс, т.к. независимость данных достигается за счет поля "SESSION_ID" значение которого получается из генератора ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 19:15 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
"Это не баг, это фича". Таблице наплевать откуда взялись данные. Фактом остаётся то, что два разных коннекта могут положить в GTT разный набор данных, а затем извлечь его простым "select * from таблица". Плюс это, минус или монопенисуально - уже на ваше усмотрение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 19:19 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012независимость данных достигается за счет поля "SESSION_ID" значение которого получается из генератора И которое из GTT можно вообще убрать, сэкономив размер. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 19:28 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012- Да, это минус GTT (хотя наличие данных в разных подключениях мало когда нужно) это не минус GTT, это их неотъемлемое свойство по определению ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 19:34 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
m7mfedorov2012- Да, это минус GTT (хотя наличие данных в разных подключениях мало когда нужно) это не минус GTT, это их неотъемлемое свойство по определению Ок. А что касается скорости, действительно ли есть ощутимый прирост производительности или же особой разницы нет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 19:39 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012m7mпропущено... это не минус GTT, это их неотъемлемое свойство по определению Ок. А что касается скорости, действительно ли есть ощутимый прирост производительности или же особой разницы нет? Не знаю, для меня это было вторичным, первичным же было "упрощение" некоторых алгоритмов ps/ Совсем субъективно (без всяких измерений и обоснований): там где использовались псевдо-временные таблицы разницу не ощутил, впрочем и не ожидал её ощутить, ибо объемы данных совсем не те. Там где не использовались, но переделали с использование временных таблиц разница ощутима ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 19:56 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012m7mпропущено... это не минус GTT, это их неотъемлемое свойство по определению Ок. А что касается скорости, действительно ли есть ощутимый прирост производительности или же особой разницы нет? GTT не плодят мусор. живут в отдельных файлах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 20:13 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
pastorживут в отдельных файлах в каких? FB где-то временно создает свои файл под GTT? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 21:28 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012 FB где-то временно создает свои файл под GTT? где-то создает. doc\sql.extentions\README.global_templorary_tables.txt p.s. ты задолбал уже на эту тему, честное слово :-) Сколько раз уже тебе тыкать нужно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 21:32 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
kdvp.s. ты задолбал уже на эту тему, честное слово :-) Сколько раз уже тебе тыкать нужно? в README.global_temporary_tables.txt ни слово про имя файла ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 21:37 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Задлянафига вам знать имена временных файлов:README.global_temporary_tables.txtData and index pages of all of the GTTs instances are placed in separate temporary files? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 21:41 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorov, Скажите, пожалуйста, производим вставку данных в таблицу, но транзакцию не commit'ем - как ведет себя FB: все равно пишет данные на диск в mydb.fdb или же пока нет коммита хранит в ОЗУ (параметры транзакции read_committed, rec_version, nowait )? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 21:59 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
таблица имеется ввиду обычная (не GTT) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 22:00 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012Скажите, пожалуйста, производим вставку данных в таблицу, но транзакцию не commit'ем - как ведет себя FBЗадайте вопрос самому себе: что должен делать сервер, в распоряжении которого остался последний мегабайт ОЗУ, если ему вставили гигабайт данных? P.S. Ответ на вопрос: "А как это работает?" находится там, где вы упорно не желаете читать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 22:05 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Basil A. Sidorovесли ему вставили гигабайт данных? Спасибо, правильно ли я Вас понял, что сервер не скидывает данные в БД и хранит их в ОЗУ пока не вызвали commit у активной транзакции или же пока ОЗУ не начнет заканчиваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 22:07 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012Спасибо, правильно ли я Вас понял, что сервер не скидывает данные в БД и хранит их в ОЗУ пока не вызвали commit у активной транзакции или же пока ОЗУ не начнет заканчиваться?Если из А следует Б, то это ещё не означает, что из Б следует А. Политику кэширования определяют многие факторы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 22:14 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Basil A. SidorovПолитику кэширования определяют многие факторы. Загадки какие-то, можно ли хотя бы сказать что в большинстве случаев поведение FB будет таким: сервер не скидывает данные в БД и хранит их в ОЗУ пока не вызвали commit у активной транзакции или же пока ОЗУ не начнет заканчиваться? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 22:21 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012Загадки какие-то, можно ли хотя бы сказать что в большинстве случаев поведение FB будет такимНет, не можно: пишите две реализации, тестовый сценарий и проверяете всё, что вас интересует на типичных данных вашего приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2014, 22:24 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
С большим интересом выслушаю мнение и других участников ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:04 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012, выигрыш может быть на сборке мусора. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:08 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012pastorживут в отдельных файлах в каких? FB где-то временно создает свои файл под GTT? в каталоге TEMP Если каталог TEMP лежит на отдельном физическом диске от файла БД, то получим возможный прирост производительности. Плюсом к отсутствию мусора в основном файле БД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:18 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
pastor, а не будет ли минусом в производительности, что GTT работает через файлы, а обычные таблицы через ОЗУ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:44 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012, хватит чушь нести ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:45 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Почему чушь то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 11:56 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012Почему чушь то? Источник информации о том, что "GTT работает через файлы, а обычные таблицы через ОЗУ" есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:01 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012, потому что данные обычных таблиц тоже живут в файле, только в файле БД. Про ОЗУ это исключительно твоя фантазия. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:01 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012pastor, а не будет ли минусом в производительности, что GTT работает через файлы, а обычные таблицы через ОЗУ? всеми слабыми своими силами удерживаю себя от троллинга. GTT файлы в точности такие же как и файлы БД, только они 1. временные, в т.ч. с точки зрения ОС 2. лежат в каталоге для временных файлов во всем остальном они работают через тот же самый нерезиновый страничный кэш, с теми же самыми стратегиями использования памяти. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 12:42 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
pastorGTT файлы в точности такие же как и файлы БД, только они 1. временные, в т.ч. с точки зрения ОС 2. лежат в каталоге для временных файлов во всем остальном они работают через тот же самый нерезиновый страничный кэш, с теми же самыми стратегиями использования памяти. Всем спасибо за советы, решено отказаться от GTT т.к. явных преимуществ в производительности не видно, но огромный минус это отладка sql-запросов с использованием GTT особенно когда GTT заполняется на клиенте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:16 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Вместо GTT решено использовать свою временную таблицу (стандартную) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:18 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012, решил изобрести велосипед. Ждём вопросов почему база распухла и откуда берутся тормоза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:26 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012Всем спасибо за советы, решено отказаться от GTT т.к. явных преимуществ в производительности не видно, но огромный минус это отладка sql-запросов с использованием GTT особенно когда GTT заполняется на клиенте "Нравится" мне категоричность выводов Ну вставил-бы "по моему мнению" или "в моем случае" и претензий не было-бы никаких ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 13:30 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Симонов Денисfedorov2012, решил изобрести велосипед. Ждём вопросов почему база распухла и откуда берутся тормоза. кстати до этого база работала на FB 2.0 все ок - не распухла (tmp_table всегода оказывалась пустой) да и распухать неоткуда т.к. моя временная таблица используется на select без коммита транзакции, поэтому даже если возникнет дисконект все равно мусора не возникнет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 14:17 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
m7m, естественно все что здесь мною пишется это чисто мои мысли ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 14:18 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012решено отказаться от GTT т.к. явных преимуществ в производительности не виднобред какой-то. Как же не видно, если при наличии ОЗУ ОСь не будет их материализовать на диске, а для стационарных таблиц это будет сделано обязательно, а при sinc режиме еще и всенепременнейше сию минуту. дисковое ИО это не аргумент? fedorov2012отладка sql-запросов с использованием GTTна время отладки делается стандартная таблица в тестовой БД, после отладки в рабочую БД идет ГТТ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 14:19 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012моя временная таблица используется на select без коммита транзакции, поэтому даже если возникнет дисконект все равно мусора не возникнет что такое мусор по твоему? Я тебе про версии записей говорил, а не про ненужные записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 14:28 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Ivan_PisarevskyКак же не видно, если при наличии ОЗУ ОСь не будет их материализовать на диске, а для стационарных таблиц это будет сделано обязательно 1. GTT работает через временные файлы 2. FB не дура, сбрасывать данные она будет в большинстве случаев, если идет комиит транзакции или ОЗУ заканчивается 3. Сделан емкий тест - разницы в производительности не замечено. Ivan_Pisarevskyна время отладки делается стандартная таблица в тестовой БД, после отладки в рабочую БД идет ГТТ. ага, а если это стек вызовом хранимых процедур ссылающиеся на tmp_table - все перекомпилировать на новую таблицу стандартную tmp_table2 - ну и зачем такой огород - ради чего, если нет очевидных плюсов GTT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 14:55 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Симонов Денисчто такое мусор по твоему? Я тебе про версии записей говорил, а не про ненужные записи. версий записей не возникает т.к. 1) транзакция не коммититься 2) при первом же select'e tmp_table все подчищается 3) select вызывается сразу же после вставки промежуточных id'шников в tmp_table т.к.после её заполнения она сразу же используется в select'ах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 14:58 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012моя временная таблица используется на select без коммита транзакциив сессии идёт вставка, в твою таблицу, а затем селект? и это делается в одной транзакции? а другие данные обрабатываются в другой транзакции? получается, что данные между разными транзакциями ты перекидываешь на клиенте? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 15:00 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012, >> 1) транзакция не коммититься А что же делается ROLLBACK? Впрочем это не имеет значения. >> 2) при первом же select'e tmp_table все подчищается так у тебя же фильтрация идёт по сессиям. Значит почиститься она теоретически может только в своей сессии и то при следующем выполнении. >> 3) select вызывается сразу же после вставки промежуточных id'шников в tmp_table т.к. после её заполнения она сразу же используется в select'ах сборка мусора может начаться только после завершения текущей транзакции. Т.е. твой select будет делать сборку мусора только в новой транзакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 15:09 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov20123. Сделан емкий тест - разницы в производительности не замечено.Ты DELETE не забыл убрать из своего ёмкого теста ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 15:09 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
roadsterfedorov2012моя временная таблица используется на select без коммита транзакциив сессии идёт вставка, в твою таблицу, а затем селект? и это делается в одной транзакции? Да! Временная таблица нужна для оптимизации скорости выборки когда join'иться куча таблиц - например, пользователь отмечает нужные записи галочкой и формирует отчет - выборка сделается только по этим записям ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:31 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Симонов Денис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... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:38 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
hvladfedorov20123. Сделан емкий тест - разницы в производительности не замечено.Ты DELETE не забыл убрать из своего ёмкого теста ? не забыл и delete не обязателен т.к. commit'a нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 16:40 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012, не выполнится. Сколько раз говорить, что сборка мусора может начаться только в новой транзакции. Вот если бы у тебя Fill tmp_table выполнялся в одной транзакции. А select в другой тогда выполнялась бы. Но для этого необходимо чтобы транзакция которая для Fill tmp_table завершилась. А поскольку у тебя она завершается откатом данные ты не увидишь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 17:18 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Симонов ДенисВот если бы у тебя Fill tmp_table выполнялся в одной транзакции. А select в другой тогда выполнялась бы. Но для этого необходимо чтобы транзакция которая для Fill tmp_table завершилась. А поскольку у тебя она завершается откатом данные ты не увидишь. Все нормально работает, мусор не накапливается - делаю простой пример 1. стартуем транзакцию 2. заполняем tmp_table 3. выполняем select sql-запрос с участием tmp_table для формирования отчета. 4. закрываем транзакцию с откатом. 5. Смотрим статистику базы через IBExpert левых версий 0. ч.т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 17:48 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012делаю простой пример Ты делаешь слишком простой пример. Undo log не переполняется и при откате транзакции она сама удаляет всё, что изменила в базе. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 19:13 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovТы делаешь слишком простой пример. Undo log не переполняется и при откате транзакции она сама удаляет всё, что изменила в базе. Я привел алгоритм, который используется у меня в проекте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 20:49 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
как говорится - зачем платить больше, если не видно разницы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.10.2014, 20:50 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
fedorov2012делаю простой примерГде он ? Полный его текст, плз: DDL, DML + результаты по трейсу. По сабжу: DDL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. DML-1 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. DML-2 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. Result-1: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. Result-2 Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. ЗЫ. fw = OFF, cache = 4096, 2.5.3 SC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2014, 02:01 |
|
||
|
Преимущество временной таблицы от Firebird'a (Global Temporary Tables) перед собственной
|
|||
|---|---|---|---|
|
#18+
Способ вполне себе нормальный. Де-факто у ТС получается GTT ON COMMIT DELETE ROWS. Но для FB 2.5 идеологически и архитектурно правильней использовать именно GTT. Минус данной реализации - отсутствие длинной читающей транзакции для выборок, где используется данная таблица. Если это отчет, то минус отпадает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.10.2014, 03:44 |
|
||
|
|

start [/forum/topic.php?all=1&fid=40&tid=1563257]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
99ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
109ms |
get tp. blocked users: |
2ms |
| others: | 241ms |
| total: | 497ms |

| 0 / 0 |
