Найдено 9 результатов

marcodor
12 мар 2010, 11:55
Форум: Администрирование
Тема: Firebird и Виртуальные машины
Ответы: 0
Просмотры: 12801

Firebird и Виртуальные машины

Есть у кого нибудь положительный опыт работы файра в виртуальной среде (vmware, xen) больших баз?
Мы перевели почти все под XenServer, работает шустро, гибко, удобно, но базы как-то стремно туда ставить.
marcodor
12 мар 2010, 11:42
Форум: Общие проблемы
Тема: Как передать диапазон допустимых значений
Ответы: 11
Просмотры: 7549

Re: Как передать диапазон допустимых значений

Мой пример тоже можно оформить в процедуре Ой, не хочю спорить, но вот делал тесты Where ?ParamStr Containing '~'||T.ID||'~' работает в сто раз тормознее чем с ES. ЕS идет по индексу ~12s на 7млн записей, а containing по натуралу 1m 33s Так что здесь ЕS cамый смак ;) 1: Query ----------------------...
marcodor
12 мар 2010, 11:22
Форум: Общие проблемы
Тема: Производительность сортировки и выборки в порядке индекса
Ответы: 5
Просмотры: 15691

Re: Производительность сортировки и выборки в порядке индекс

потому что в ключах индекса нет информации о транзакциях
Хм... Я думал что есть. Получается, что когда движок читает по индексу и ищет запись в секторе данных то могут быть и холостые попытки ;) если транзакций / изменений много.
marcodor
11 мар 2010, 13:03
Форум: Общие проблемы
Тема: Как передать диапазон допустимых значений
Ответы: 11
Просмотры: 7549

Re: Как передать диапазон допустимых значений

и зачем тут execute statement???
Ну а как по другому впихнуть быстро список значений в where in (??) ? Есть варианты, но так быстро и удобно.
marcodor
11 мар 2010, 12:57
Форум: Общие проблемы
Тема: Производительность сортировки и выборки в порядке индекса
Ответы: 5
Просмотры: 15691

Re: Производительность сортировки и выборки в порядке индекса

SELECT A, COUNT(A) FROM TABLE GROUP BY A PLAN (TABLE ORDER A) Видим что занимает 42мин. А почему собственно он не считает каунт по индексу а сначала сортирует данные и потом считает каунт по данных? Здесь пример более теоретический, врядли придется такое делать, на таком массиве данных. Для других ...
marcodor
10 мар 2010, 18:51
Форум: Общие проблемы
Тема: Как передать диапазон допустимых значений
Ответы: 11
Просмотры: 7549

Re: Как передать диапазон допустимых значений

Привет! Да зачем разбирать? Можно и так: create procedure NEW_PROCEDURE ( WHEREIN varchar(100)) returns ( RESULT integer) as begin execute statement 'select 1 from RDB$DATABASE where 1 in ('|| WHEREIN ||')' into :RESULT; suspend; end и не надо поднимать ... Извини ;) скочил сюда с моей проблемы, уви...
marcodor
10 мар 2010, 18:41
Форум: Общие проблемы
Тема: UDF и большие cstring параметры
Ответы: 2
Просмотры: 3257

Re: UDF и большие cstring параметры

Влад, спасибо за внятный ответ!

С RETURN PARAMETER есть прирост ~15%. В принципе это меня устраивает, не такие уж тормознутые эти удфки ;)
Сам запрос, даже без них тяжеловатый, сервер наверное шустрее надо будет ставить.

-
D.
marcodor
10 мар 2010, 15:16
Форум: Общие проблемы
Тема: UDF и большие cstring параметры
Ответы: 2
Просмотры: 3257

UDF и большие cstring параметры

Добрый день! Есть 2-3 удфки которые обрабатывают стринг-массивы, типа 1.2.3.4., например DECLARE EXTERNAL FUNCTION ARRAYLEFT CSTRING(200), CSTRING(1), INTEGER RETURNS CSTRING(200) FREE_IT ENTRY_POINT 'ArrayLeft' MODULE_NAME 'warrays'; Замечал что если параметры большие, то очень сильно влияют на про...
marcodor
10 мар 2010, 13:20
Форум: Общие проблемы
Тема: Как передать диапазон допустимых значений
Ответы: 11
Просмотры: 7549

Re: Как передать диапазон допустимых значений

Привет,
Можно через параметр varchar передать список, тоесть '1,2,3,4' а потом в процедуре юзать execute statement.
Но сначало подумай хорошо если вообще это тебе надо.