Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Работа GTT / 8 сообщений из 8, страница 1 из 1
19.05.2014, 07:07:30
    #38644765
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
Добрый день
Возник по ходу разработки такой момент - есть таблица для временных данных, наследие от interbase от которого постепенно избавляемся. Для этого решили переделать табличку в GTT, с небольшой корректировкой (убрать индексирование поле с номером сессии усера). Для начала провели эксперимент - создали GTT, начали инсерт с одного конннекта - получили файл в tempdirectories, подключили второй коннект и зачали инсерт - файлика на этот коннект нет. Срубаю первый коннект - файлик на месте,срубаю второй - исчез. Вот и вопрос - почему? Знаю что при работе с GTT файлик появляется всегда,но кэш из памяти на диск сбрасывается при прохождении порога TEMPCASHLIMIT, но почему тогда он создается один на несколько коннектов? Ну и такой специфичный вопрос - если файлик один на всех то как данные в нем находятся - как реализовано разделение по коннектам?
...
Рейтинг: 0 / 0
19.05.2014, 07:54:33
    #38644771
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
Gallemarпочему тогда он создается один на несколько коннектовЧего-то ты напутал. Когда сделал второй коннект, то действительно ли выполнил в нём insert into gtt ? http://www.firebirdsql.org/file/documentation/release_notes/html/rlsnotes210.html#rnfb210-globaltemp The data and index pages of all GTT instances are placed in separate temporary files. Each connection has its own temporary file created the first time the connection references some GTT. Запусти два isql'я, затолкай в каждом из них по одной строке в GTT, затем сделай dir %temp%\fb_table* | findstr /i /c:fb_table - там должно быть два файла. Хоть и нулевого размера.
...
Рейтинг: 0 / 0
19.05.2014, 08:04:32
    #38644777
Таблоид
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
GallemarДля начала провели экспериментКогда такие штуки вытворяешь, то показывай последовательность д-вий с "заголовками" вида session #1, session #2 и т.п. - чтобы за тобой повторить можно было:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
 window #1 
isql localhost/3050:tmp_alias -user sysdba -pas masterke
SQL> insert into gtt select 'qwerty';

 window #0 
c:\> dir c:\temp\fb_table* | findstr /i /c:fb_table
<результат команды>

 window #2 
isql localhost/3050:tmp_alias -user sysdba -pas masterke
SQL> insert into gtt select 'asdfgh';

 window #0 
c:\> dir c:\temp\fb_table* | findstr /i /c:fb_table
<результат команды>
...
Рейтинг: 0 / 0
19.05.2014, 08:22:23
    #38644785
Ivan_Pisarevsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
Gtt это такой же страничный файл как и сама база, база может состоять из одного (обычно), но может и из нескольких (как пережиток прошлого), собственно для многофайловой бд юзер не принимает никого участия в том, куда (в какой файл) движок положит данные.

СОбственно я не вижу ни проблемы ни поля для исследований. Можно в исходники заглянуть при желании.
...
Рейтинг: 0 / 0
19.05.2014, 09:00:07
    #38644807
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
GallemarЗнаю что при работе с GTT файлик появляется всегда,но кэш из памяти на диск сбрасывается при прохождении порога TEMPCASHLIMIT
неправильно, GTT никак не связаны с TempCacheLimit
...
Рейтинг: 0 / 0
19.05.2014, 19:43:04
    #38645663
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
Хы
Если использую классик - при работе с GTT появляется отдельный файлик на коннект,если супер - только один для всех.
...
Рейтинг: 0 / 0
19.05.2014, 19:51:04
    #38645668
Gallemar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
dimitrGallemarЗнаю что при работе с GTT файлик появляется всегда,но кэш из памяти на диск сбрасывается при прохождении порога TEMPCASHLIMIT
неправильно, GTT никак не связаны с TempCacheLimit
GTT всегда только на диске?
...
Рейтинг: 0 / 0
19.05.2014, 20:20:31
    #38645691
dimitr
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Работа GTT
Gallemar,

для начала они в страничном кеше ФБ, как и любые другие таблицы. Затем в кеше оси. И уже потом на диске.
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Работа GTT / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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