Сервер с FB 1.5.6, Win 2003 Ent
Для файлов сортировки firebird выделен отдельный логический диск в 4 гига (на самом деле он виртуальный, висит в оперативке, устроен с помощью программы RAMDisk)
База большая, обслуживает аналитическое приложение, и запросы к ней огромны, столкнулись с проблемой - 4 гига не хватает на сортировочные файлы.
Значение TempDirectories в firebird.conf:
TempDirectories = e:\fbsort 4250000000;c:\Temp
По идее изначально используется место на диске Е, при нехватке оставшиеся файлы сортировки размещаются в С:\Temp, где места в избытке (более 100 Гб). На практике диск Е забивается полностью, идет создание файлов сортировки в C:\Temp, после чего выдается сообщение
I/O error for file "e:\fbsort\fb_sort_xxxxxx"
Error while trying to write to file
Нет бумаги в принтере.
Пробовали менять значение TempDirectories на следующие:
TempDirectories = e:\fbsort; c:\Temp
TempDirectories = e:\fbsort;c:\Temp
TempDirectories = e:\;c:\Temp
Не помогает... запрос корректно отрабатывает только со значением TempDirectories = c:\Temp, когда все файлы лежат в одном месте.
Но тогда теряются все преимущества в скорости виртуального жесткого диска... чего очень не хочется, ибо клиент не хочет ждать отчет 2 часа вместо 30 минут.
Помогите советом..
FB 1.5.6 Нет бумаги в принтере, ошибка TempDirectories
Re: FB 1.5.6 Нет бумаги в принтере, ошибка TempDirectories
после изменения конфига ФБ надо перезапускать, если суперсервер. Для классика изменения в конфиге увидят только новые коннекты.Не помогает... запрос корректно отрабатывает только со значением
Если речь про темп на рам-диске, то понятное дело, рам диск должен существовать как диск ДО старта ФБ.
Про бумагу в принтере - да, винда так пишет.
Для файлов сортировки firebird выделен отдельный логический диск в 4 гига (на самом деле он виртуальный, висит в оперативке, устроен с помощью программы RAMDisk)
нафига? Вы сравнивали скорость без и с рам диском? И что, большая разница?ибо клиент не хочет ждать отчет 2 часа вместо 30 минут.
совсем худой диск C:? С настройками размера памяти для сортировки экспериментировали?
что это за запросы такие, которые по 30 минут выполняются? может быть, стоит подумать о хранении промежуточных вычислений?
Re: FB 1.5.6 Нет бумаги в принтере, ошибка TempDirectories
Рам-диск существует до старта firebird. Естественно СУБД перезапускали при каждой смене TempDirectories. Клиент каждый раз новый.
30 минут строится отчет, который использует данные из 10 различных баз данных. каждая база - аналитическое хранилище данных с метауровнем информации. Менять структуру БД мы не можем, ровно как и оптимизировать запросы - их делает приложение с закрытым для нас бинарным кодом.
Могу сказать лишь одно - 30-минутные запросы действительно есть, и от этого никуда не деться. Это зависит не от нас.
Работаем с тем что есть, а есть у нас настройки firebird.
С настройками размера памяти для сортировки эксперименты не ставили, поэкспериментируем, спасибо.
Однако суть проблемы не в этом. Суть в том, что невозможно использовать 2 папки под временные файлы субд.
Сталкивался кто-нибудь с данной проблемой и как её решал?
Скорость сравнивали.что это за запросы такие, которые по 30 минут выполняются? может быть, стоит подумать о хранении промежуточных вычислений?
30 минут строится отчет, который использует данные из 10 различных баз данных. каждая база - аналитическое хранилище данных с метауровнем информации. Менять структуру БД мы не можем, ровно как и оптимизировать запросы - их делает приложение с закрытым для нас бинарным кодом.
Могу сказать лишь одно - 30-минутные запросы действительно есть, и от этого никуда не деться. Это зависит не от нас.
Работаем с тем что есть, а есть у нас настройки firebird.
С настройками размера памяти для сортировки эксперименты не ставили, поэкспериментируем, спасибо.
Однако суть проблемы не в этом. Суть в том, что невозможно использовать 2 папки под временные файлы субд.
Сталкивался кто-нибудь с данной проблемой и как её решал?
Re: FB 1.5.6 Нет бумаги в принтере, ошибка TempDirectories
размер сорт-файлов в момент ошибки на e: какой? файловая система на рам-диске какая?4250000000
я тут дальше хотел вопросов назадавать, но потом подумал - RAMDisk это же сторонняя фишка, так?
Так что, способность ФБ 1.5.6 работать с несколькими темп-каталогами проверяется легко - создаете несколько темпов типа
C:\temp\1;c:\temp\2 и так далее, по 100мб, и выполняете запрос который нагенерит много темп-данных. Типа
select cast(e.emp_no as varchar(100))||e.last_name
from e employee, e1 employee, e2 employee, ... e5 employee
order by 1
в employee вроде 43 записи, значит будет 43 в 5 степени записей сортироваться (при условии plan sort)
если темпы будут по очереди заполняться - замечательно. Потом добавляете первым или вторым этот ramdisk, и опять проверяете.
p.s. думаю что рамдиск глючит. Насчет запросов и темп-файлов больше 4 гиг - сочувствую.
Re: FB 1.5.6 Нет бумаги в принтере, ошибка TempDirectories
Размер сорт-файлов показывает как 0, если смотреть на свободное место на диске - на нем остается около 60 мегабайт места, после чего сорт-файлы уже создаются в C:\temp
файловая система на ram-disk естественно NTFS, диск переформатирован средствами Win.
За совет с проверкой временных каталогов - спасибо, сегодня буду экспериментировать.
Пока проверяю следующий вариант - памяти для сортировки дал firebird'у 1 гиг, и рам-диск оставил на 4 гига.
Если запросы не будут в сумме вылезать за 5 гигабайт сорт-файлов - будет здорово.. хотя решение это временное, подпорка.
файловая система на ram-disk естественно NTFS, диск переформатирован средствами Win.
За совет с проверкой временных каталогов - спасибо, сегодня буду экспериментировать.
Пока проверяю следующий вариант - памяти для сортировки дал firebird'у 1 гиг, и рам-диск оставил на 4 гига.
Если запросы не будут в сумме вылезать за 5 гигабайт сорт-файлов - будет здорово.. хотя решение это временное, подпорка.
Re: FB 1.5.6 Нет бумаги в принтере, ошибка TempDirectories
К firebird'у претензий нет.
Пробовал разделять папки для сорт-файлов на разные диски, которые существуют в реальности. Всё работает без проблем.
Значит дело было в ramdisk'е.
Пробовал разделять папки для сорт-файлов на разные диски, которые существуют в реальности. Всё работает без проблем.
Значит дело было в ramdisk'е.