Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Открыть новую тему     Написать ответ в эту тему

OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
idiMAN
Немного есть в книге Борри, а дальше смотри документацию от IB6.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 13:11 13-10-2008
LeaF_AVF



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
idiMAN
Угу, именно это и имел в виду..
Если не сложно, поясни, для какой цели планируешь использовать фильтры на сервере (кстати по синтаксису объявления рискну предположить, что они являются какой-то разновидностью UDF, я не ошибаюсь?)

Всего записей: 275 | Зарегистр. 01-01-2007 | Отправлено: 13:15 13-10-2008
idiMAN

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeaF_AVF
Я планировал сделать на клиенте клиентские blob-фильтры для сжатия данных. Но, т.к. разрабатывать, администрить и отлаживать базу я планирую с помощью IBExpert, то хотел реализовать также blob-фильтры и на серверной стороне, для полукения нормальных (не сжатых) данных в IBExpert.
 
OXDBA

Цитата:
Немного есть в книге Борри

Да там совсем немного - меньше страницы. И то, констатация факта, что такие фильтры существуют.

Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 09:06 14-10-2008
Tantos



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
idiMAN
Если используется FIBPlus:
 
Работа с BLOB-полями
 
Что такое BLOB? Как корректно работать с BLOB полями и BLOB фильтрами в Firebird/InterBase? В чем преимущество механизма клиентских BLOB фильтров в FIBPlus?

Всего записей: 1038 | Зарегистр. 31-05-2005 | Отправлено: 04:23 15-10-2008 | Исправлено: Tantos, 04:24 15-10-2008
idiMAN

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Tantos
Спасибо, но я это уже читал.

Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 08:33 15-10-2008
AngeL



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA много это 70 гигов, про ограничения не знаю.
LeaF_AVF не было проблемы с шатдауном.
Ну SYSDBA у нас использует только администратор и, естественно, только в административных целях
sergiuz1303 пользователи через эксперт заходить, ХХОХО, а зачем им это? они наверно даже не знают что это, может просто не оставлять эту программу на компах у юзеров?  
Хотя у нашихклиентов она стоит и что-то ни разу за 3года не было случая, чтобы ктото туда залез

Всего записей: 69 | Зарегистр. 19-05-2004 | Отправлено: 01:00 16-10-2008
LeaF_AVF



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngeL
ты для начала определись все-таки, как там у вас организовано, так:

Цитата:
у нас пром. преприятие, но юзверь SYSDBA и ничего страшного! Зачем вобще юзверя менять то? у нас правда версия еще 1.5, но база огромная и все вроде неплохо, работаем!

или так:

Цитата:
Ну SYSDBA у нас использует только администратор

 
а то, что  

Цитата:
не было проблемы с шатдауном
,
это не значит, что такая проблема не возникнет в будующем.
 
Ну и напоследок - недооценивать клиентов/сторудников/юзеров все же не следует, в противном случае можешь как-то очень сильно пожалеть

Всего записей: 275 | Зарегистр. 01-01-2007 | Отправлено: 10:05 16-10-2008 | Исправлено: LeaF_AVF, 10:18 16-10-2008
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngeL

Цитата:
про ограничения не знаю

Незнание закона...(C)
У полуторки максимальный размер данных в одной таблице - 36,7 гигабайт.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 11:36 16-10-2008
idiMAN

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeaF_AVF

Цитата:
я использую клиентские фильтры (для сжатия/распаковки больших текстовых полей на стороне клиента - с целью минимизации трафика). Если ты об этом, могу рассказать подробнее

 
Если можешь, поделись пожалуйста библиотекой для сжатия/распаковки. Попробовал скомпилировать пример "Blob_Filters" из optimization_examples.zip но вылазиет куча ошибок. Исправление одних приводит к появлению других...

Всего записей: 466 | Зарегистр. 05-05-2003 | Отправлено: 08:51 17-10-2008
LeaF_AVF



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
idiMAN
по правде говоря на основе выложенных тобой "Blob_Filters", я и делал свою упаковку/распаковку
Так что показывай ошибки, - будем решать (лучше наверное в ПМ, здесь чтоб не флудить)

Всего записей: 275 | Зарегистр. 01-01-2007 | Отправлено: 10:08 17-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ребята, подскажите, как правильно сделать. Есть таблица:
1-е поле: ID слова - первичный ключ в таблице
2-е поле: само слово
3-е поле: счетчик употреблений этого слова.
Нужно проиндексировать все слова в 6-ти документах (книгах). То есть из документа берется слово, если оно отсутствует в БД, то добавляется, если есть - в соседнем поле инкрементируется счетчик количества его употреблений. Всего в документе полмиллиона слов (словарь документов - 50 тыс разных слов, т.е. в таблице будет столько записей). В конце нужен отсортированный по алфавиту (2-му полю) список слов. Процесс заполнения БД занял 3 часа 20 минут. Как можно ускорить процесс, если это возможно вообще? Я так понимаю, что если делать индекс по 2-му полю, то поиск слова ускорится, но при добавлении слов индекс в таблице будет перестраиваться, что займет время. И возможно, что будет так, что результирующее время обработки не изменится? Как в этих случаях надо поступать?

Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 10:36 17-10-2008 | Исправлено: DmitryKz, 10:43 17-10-2008
LeaF_AVF



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
мне кажется, что "бутылочным горлышком" в данной ситуации является не быстродействие сервера БД, а процедура добавления записи (открыть документ, прочесть слово, сделать выборку на наличие такого, добавить или изменить значение поля, подтвердить транзакцию).
При таком подходе (без индекса по ключевому полю), время выборки будет становиться все больше и больше с каждым запросом из-за натурального перебора. Поэтому индекс я бы добавил.
 
И второй вариант - может заинтересует, вроде бы интересный:
1. Создаем  таблицу table1 (id, name)
2. Добавляем в нее _все_ слова (только не по одной записи за транзакцию, а пакетно - по пару сотен или тысяч)
3. Создаем индекс на поле name
4. Создаем  таблицу table2 (id, name, name_qty)
5. Пишем хранимую процедурку, которая:
 - проходит по всей таблице table1 (вот тут индекс и поработает в полную);
 - по каждому полю делает выборку вида  

Код:
SELECT COUNT(name)
 FROM table1 t1
 WHERE  t1.name = :name
 into :name_qty;
 INSERT INTO table2 (name, name_qty)
 VALUES (:name, :name_qty);
 DELETE FROM table1
 WHERE  t1.name = :name;

6. На выходе - искомая табличка со стастистикой.
Вроде бы все
 

Всего записей: 275 | Зарегистр. 01-01-2007 | Отправлено: 11:03 17-10-2008
AngeL



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeaF_AVF само собой разумеется, что SYSDBA только для админов, остальным юзьверям права через программу, которая у нас и управляет тем, что можно сказать доступ к информации.
OXDBA

Цитата:
У полуторки максимальный размер данных в одной таблице - 36,7 гигабайт.

так я не про таблицу, а про базу говорила и вобще что вы имели ввиду про незнание закона?
LeaF_AVF

Цитата:
Ну и напоследок - недооценивать клиентов/сторудников/юзеров все же не следует, в противном случае можешь как-то очень сильно пожалеть

Ну да, конечно, еще скажите, что у вас сервер в сейфе стоит. Создавать себебольшой геморой из ничего бесполезное занятие. Люди материально ответственны и соответственно боятся понести ущерб, так что вряд ли кому то нужно где то лазить, чтобы их потом наказали тем же рублем.
А те, кто хотит взломать систему и узнать пароль, явно не юзеры и тут уже совсем другой разговор.

Всего записей: 69 | Зарегистр. 19-05-2004 | Отправлено: 11:05 17-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
LeaF_AVF
Прости, забыл упомянуть, что индекс по ключевому (1-му - ID слова) добавлен. У меня еще была мысль сделать ключевым с индексом 2-е поле (само слово), но не знаю, правильно ли это.

Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 11:18 17-10-2008
LeaF_AVF



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
под ключевым полем (может быть не вполне корректная формулировка) в конкретном случае я подразумевал именно 2-е поле
AngeL
поступайте как считаете нужным, убеждать вас в чем-то я не стану

Всего записей: 275 | Зарегистр. 01-01-2007 | Отправлено: 11:29 17-10-2008
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngeL
Я имел ввиду настоятельную рекомендацию посмотреть размер самой большой таблицы  БД, оценить темпы увеличения и получить дату падения Вашей БД по причине достижения магической цифры 36,7 и если она близка, принимать меры.
 
Добавлено:
DmitryKz
Индекс нужен, про заполнение лучше всего написано здесь
Тесты вариантов реализации проверки существования записи при ее обновлении
P.S. На прошлогодней конференции Сергей Мереуца предложил во второе поле писать не само слово, а результат хэш-функции CRC32 от этого слова.

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 11:48 17-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA
Сорри, если туплю - а само слово тогда как узнать?

Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 12:55 17-10-2008
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
Неет, это я три дела сразу делаю
Вместо первого поля CRC32  и индекс по нему
 
Добавлено:
О, нашел ...реализация морфологического поиска в Firebird.
 

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:32 17-10-2008
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Вот еще такую проблему обнаружил: в БД (кодировка 1251), есть две таблицы для греческих и еврейских слов (кодировки таблиц 1253 и 1255 соответственно соответственно). В программе используются Фибы. Из Юникодного текста эти слова конвертирую в Анси, английские и русские слова конвертятся и заносятся в свои таблицы успешно, а с греческими проблема - при занесении их в БД компонент выдает исключение из БД - переполнение или деление на ноль. Честно говоря, я не знаю как определить, в чем проблема (потому что вроде конвертятся они успешно), поэтому и решил сначала спросить здесь. Никто не сталкивался с подобным?

Всего записей: 3142 | Зарегистр. 29-09-2005 | Отправлено: 15:50 17-10-2008
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
DmitryKz
При соединении какую кодировку указываешь?

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 16:34 17-10-2008
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » InterBase и FireBird: вопросы по работе и их решение


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru