#x27;ХІМ'
) as sr
inner join "CoreTerm2Obj" t2o on t2o."Term" = sr.id
group by 1,2) sr1 order by iif(sr1.tc = 2, 0, 1), sr1.tc desc,
sr1.rank
а вот так этот запрос используется в процедуре:
for execute statement :sql
into :"Type",:"Obj"
do begin
suspend;
end
Привет.
Вот добрался до execute statement
Можно в него как-то параметры вставлять?
Пример
dsql='Select ';
dsql=dsql||' Rem.iddepot,Rem.idcommodity,';
dsql=dsql||iif(:qq1=1,' Rem.costprice ',' null ')||' as f1, ';
dsql=dsql||iif(:qq2=1,
> select sr1."Type",sr1."Obj"
> from(
> select
> t2o."Obj",t2o."Type", count(*) as tc,
> sum(bin_shl(1,sr.p)+bin_shl(1,t2o."Position")-iif
> (sr.p=t2o."Position",10,-10)-iif(sr.t=0,100,0)) as rank
> from (select ct."Id" as id, 0 as p, 1 as t from "CoreTerm" ct where
> ct."Term" startin
Alexander Sumskiy wrote:
Вот понадобилось в процедуре использовать сабж и сразу же нарвался на
грабли. Запрос который формируется в процедуре возвращает пустой
набор, хотя если его выполнить отдельно, то работает так как надо.
Какой чарсет базы и какой чарсет коннекта?
--
Дмитрий Еманов
> Какой чарсет базы и какой чарсет коннекта?
База utf-8, коннект - win-1251
> Вот интересно, хто этот бред разбирать будет ? Ну, ты бы хоть его
> отформатировал там, чтоб читабельнее было...
Да у меня подозрения были, что это еще и от форматирования может быть,
вот и показал так как формируется
> Кстати, я знаю где ошибка: в 17 строке. =)
Там я уже проверил - нету :)
> > Какой чарсет базы и какой чарсет коннекта?
>
> База utf-8, коннект - win-1251
Проверил, если поставить коннект тоже в utf-8, то работает. Значит
таки бага...
Кстати, версия сервера: WI-T2.5.0.23650 Firebird 2.5 Beta 1
Hi All
есть проктологическая идея немного расширить возможность execute
statement. Заключается она вот в чем, сделать доступ к контексту вызова.
Пример 1:
create procedure ...
as
declare variable MyVar1 int;
begin
execute statement "update ... set ... where MyField=MyVar1";
"Dmitry Lendel" ...
Привет.
Вот добрался до execute statement
Можно в него как-то параметры вставлять?
В FB 2.5
--
Хорсун Влад
В Fb2.0.1 после ES row_count возвращает 0 даже если был апдейт в ES
это так и задумано, или писать в трекер?
Я помню что где-то когда - то это обуждали, но найти не могу.
Перерыл трекер, тоже не нашел по этому поводу ничего.
p.s. по поводу es не пинать. Ибо я нашел ему применение действительно
есть проктологическая идея немного расширить возможность execute
statement. Заключается она вот в чем, сделать доступ к контексту вызова.
execute statement "update ... set ... where MyField=MyVar1";
Эт, ты с нами советуешся или как :)))
А если серезно, то мне ES как-
Evgeny Putililn пишет:
Hi All
есть проктологическая идея немного расширить возможность execute
statement. Заключается она вот в чем, сделать доступ к контексту вызова.
Пример 1:
create procedure ...
as
declare variable MyVar1 int;
begin
execute statement "update ... set ...
> А конкатенация уже не катит?
> execute statement "update ... set ... where MyField=" || cast(MyVar1 as
> varchar(20));
Особенно хорошо когда одинарная кавычка в тексте или вообще NULL.
А как не целые и не сроковые типы кастятся...
On Fri, 17 Aug 2007 11:57:07 +0400, Evgeny Putililn <[EMAIL PROTECTED]> wrote:
> есть проктологическая идея немного расширить возможность execute
> statement. Заключается она вот в чем, сделать доступ к контексту вызова.
Вроде уже было предложение "параметры в ES".
--
Сергей Смирнов.
WildSery пишет:
On Fri, 17 Aug 2007 11:57:07 +0400, Evgeny Putililn <[EMAIL PROTECTED]> wrote:
есть проктологическая идея немного расширить возможность execute
statement. Заключается она вот в чем, сделать доступ к контексту вызова.
Вроде уже было предложение "параметры в ES
Andrei Yeryomin пишет:
А конкатенация уже не катит?
execute statement "update ... set ... where MyField=" || cast(MyVar1 as
varchar(20));
Конкатенация не катит, если надо передовать различные параметры. В
конкотенации ты используеш констунту, а можно переменную.
WBR Evgeny Putilin.
Evgeny Putililn wrote:
Еще бы список параметров был плавающим, наприемр один раз мне нужны
:p1,:p2:p25 для другого раза :p15,:p32:p2
Это как?
--
Дмитрий Еманов
Dmitry Yemanov пишет:
Evgeny Putililn wrote:
Еще бы список параметров был плавающим, наприемр один раз мне нужны
:p1,:p2:p25 для другого раза :p15,:p32:p2
Это как?
Ну допустим у процедуры есть параметыр и именуются они p1,..,p10 и я
хочу один раз выполнить
execute statement " ...
On Fri, 17 Aug 2007 17:24:58 +0400, Evgeny Putililn wrote:
> Ну допустим у процедуры есть параметыр и именуются они p1,..,p10 и я хочу
> один раз выполнить
> execute statement " ... where f1=p1 and f2=p2";
> а второй раз в этом же участке кода
> execute statement &q
Hi WildSery пишет:
if (first_execute = 1) then begin
sql = '... where f1 = :p1 and f2 = :p2';
-- тут каким-то образом заполняем параметры
end else begin
sql = '... where f1 = :p2 and f2 = :p5 and f3 = :p8';
-- тут каким-то образом заполняем параметры
end
e
Кстати, EXECUTE STATEMENT может выполнять и EXECUTE BLOCK. И при этом
все номально и с TIMESTAMP, и с DOUBLE PRECISION, и с NUMERIC(N,M).
Это советы проктолога :) Ded, конечно, меня побъет :)
P> Кстати, EXECUTE STATEMENT может выполнять и EXECUTE
P> BLOCK. И при этом все номально и с TIMESTAMP, и с DOUBLE
P> PRECISION, и с NUMERIC(N,M).
P> Это советы проктолога :) Ded, конечно, меня побъет :)
а рекурсивный ЕС пробовал ? :)
--
ри этом учитывается "наследование" документов от
базового типа "АбстрактныйДокумент".
Все реализовано в одной ХП, которая вызывается в триггере (при
установке значениия поля таблицы FLAG_COMMIT=1), и на одних EXECUTE
STATEMENT, которые формируют иногда EXECUTE BLOCK.
Со всей фигней пока до 1024 уровня рекурсии не дошел. :)
Hi,
Заметил что вот такое не работает (пробую на fb 2.0 beta2):
DECLARE VARIABLE V_INTEGER INTEGER;
FOR EXECUTE STATEMENT
'SELECT NULL FROM RDB$DATABASE' INTO :V_INTEGER
а если привести к integer, то работает:
FOR EXECUTE STATEMENT
'SELECT CAST(NULL AS INTEGER) FROM RDB
Сборка 2.5.0.22628, моя.
Оператор EXECUTE STATEMENT при указании в формате
':' не хочет пропускать с CURRENT_USER на удаленный сервер.
Проверил варианты:
1) с полным пропуском секции AS USER в операторе
2) с указанием AS USER CURRENT_USER, но с пропуском секции PASSWORD.
Текущее по
Я помню что где-то когда - то это обуждали, но найти не могу.
Перерыл трекер, тоже не нашел по этому поводу ничего.
Я когда-то жаловался сюда, но в трекерне писал. Вобще здравая и полезная
вещь, думаю в трекере поддержат. Они как раз планируют для FB3 его
переделывать для поддержки параметро
s>
s>> Я помню что где-то когда - то это обуждали, но найти не могу.
s>> Перерыл трекер, тоже не нашел по этому поводу ничего.
s>
s> Я когда-то жаловался сюда, но в трекерне писал. Вобще здравая и полезная
s> вещь, думаю в трекере поддержат. Они как раз планируют для FB3 его
s> переделывать для п
Alexandr Kochmin:
>Без es код SP вырос бы раз в 5 и код стал бы менее понятным и более медленным.
А может EB помог бы?
f>
f>
f> Alexandr Kochmin:
f>> Без es код SP вырос бы раз в 5 и код стал бы менее понятным и более
f>> медленным.
f> А может EB помог бы?
f>
и собирать на клиенте? Не-а. на клиенте не получится.
--
С уважением
Кочмин Александр
Firebird Foundation associate member #257
. Передам в процедуру набор полей, которые
изменились, например так (field1,field3, field17). Сгенерирую запрос в
процедуре
update table1 set field1=:field1,field3=:field3,field17=:field17 where
id=:id
field1,field3, field17 также являются параметрами процедуры.
ну и дальше execute statement
> Если без EXECUTE STATEMENT, то работает и без CAST...
> Это так и должно быть?
Всегда так было. Преобразование типов не работает.
> См a3, например
> --
> Хорсун Влад
Понятно, не дочитал.
Да хрен с ним, по-другому сделал...
"PEAKTOP" ...
Сборка 2.5.0.22628, моя.
Оператор EXECUTE STATEMENT при указании в формате
':' не хочет пропускать с CURRENT_USER на удаленный сервер.
Проверил варианты:
1) с полным пропуском секции AS USER в операторе
2) с указанием AS USER CURRENT_USER, но с пропу
> Хотелось бы узнать будет ли возможность использовать ROLE в ON
> EXTERNAL ?
> Поскольку желательно что бы пользователь обращался к внешним БД
> используя привилегии своей группы.
> Пока временно поставил одного юзера прямо в ХП
Погоди. Ты, когда коннектишься к EXTERNAL DATA SOURCE, какого
пользо
VictorR wrote:
Хотелось бы узнать будет ли возможность использовать ROLE в ON
EXTERNAL ?
http://tracker.firebirdsql.org/browse/CORE-2452
--
Дмитрий Еманов
dedRasta wrote:
Из трекера я понял, что ошибка уже исправлена в FB2.5RC1. А где можно
взять эту версию?
В снапшотах.
--
Дмитрий Еманов
>
> Из трекера я понял, что ошибка уже исправлена в FB2.5RC1. А где можно
> взять эту версию?
>
Официальные снапшоты (Windows x32, x64) - раз в несколько дней.
http://firebirdsql.org/downloads/snapshot_builds/win/
Неофициальные снапшоты (LINUX x32) - еженедельно
http://www.dqteam.com/fb2/HEAD
Спасибо за ссылки, скачал с
> Официальные снапшоты (Windows x32, x64) - раз в несколько дней.
> http://firebirdsql.org/downloads/snapshot_builds/win/,
накатил, попробовал написать так:
on external data source 'LOG_DB'
as user 'logdbuser'
role 'DBLOGGER'
password ''
При
dedRasta wrote:
При попытке компиляции в IBExpert'е - ругается, "parsing error".
Отключи собственный парсинг эксперта.
--
Дмитрий Еманов
dedRasta пишет:
При попытке компиляции в IBExpert'е - ругается, "parsing error".
Я не так пишу или чего то еще не так?
Этот вопрос надо задавать в разработчику IBExpert
> При попытке компиляции в IBExpert'е - ругается, "parsing error".
>
> Я не так пишу или чего то еще не так?
IBExpert половину моих скриптов выплевывает. Бу-го-га =)
Забей. Главное, чтобы сервер "пропустил", а матюки от
полуинтеллектуальных тулзов можно и не такие услышать. И не всегда по
теме.
Спасибочки!
on external data source 'LOG_DB'
as user 'logdbuser'
role 'DBLOGGER'
password ''
- работает.
С уважением
Александр Редько
On Jul 3, 4:45 pm, PEAKTOP wrote:
> IBExpert половину моих скриптов выплевывает. Бу-го-га =)
>
> Забей. Главное, чтобы сервер "пропустил
Dmitry Yemanov:
>
> http://tracker.firebirdsql.org/browse/CORE-2452
>
Поставил на win-xp версию FB 2.5.0.24435-0_win32, выполнил пару
запросов с ролями: выполняются чудесно.
Вопрос, а где можно увидеть версию под FB 2.5 Linux_x64? Тогда смогу
протеститровать более глубоко.
PS. Мечтаю потестить верс
VictorR wrote:
Вопрос, а где можно увидеть версию под FB 2.5 Linux_x64? Тогда смогу
протеститровать более глубоко.
Такие снапшоты не собираем, жди Beta 2.
PS. Мечтаю потестить версию FB 3.0, где найти не подскажете?
Ее в природе не существует.
--
Дмитрий Еманов
Sergey Mereutsa wrote:
Положил туда же - всё равно названия отличаются и понятно что для
чего.
Оно теперь регулярно будет выкладываться?
Как насчет аналогичной вещи для 2.1?
--
Дмитрий Еманов
Sergey Mereutsa wrote:
С какой переодичностью выкладывать
Как сейчас для i686.
надо ли заводить отдельную папку?
Нет.
--
Дмитрий Еманов
Андрій Жук wrote:
Мда. Но execute statement в процедурах не умеет работать с параметрами.
Что посоветуете? Или может можно расширить функционал FB, а мне написать
в трекер?
Велкам в трекер. Хотелка полезная и нами уже обсуждалась.
--
Дмитрий Еманов
Велкам в трекер. Хотелка полезная и нами уже обсуждалась.
Дак я ж уже давно написал. Пешков вроде даже то ли или взялся, то ли его
назначили (письмо мне от трекера приходило)... Только я предлагал
синтаксис с именованными параметрами, а он сказал что это сложно и проще
в список их пихать по
список их пихать по порядку... Хотя я так и не понял как он думал
разрулить два параметра с одинаковыми именами...
И что тебе мешает делать
execute statement "update " values(:param1, :param2, :param1, :param3)
Роман
"sasha" ...
Велкам в трекер. Хотелка полезная и нами уже обсуждалась.
Дак я ж уже давно написал. Пешков вроде даже то ли или взялся, то ли его назначили (письмо мне от трекера приходило)... Только я
предлагал синтаксис с именованными параметрами, а он сказал что это сложно и проще в список
И что тебе мешает делать
execute statement "update " values(:param1, :param2, :param1, :param3)
Так Пешков так и хотел сделать.
Просто мне со стороны прикладного программиста кажется что удобно
использовать именованные параметры, а не безликие маркеры, например так:
execute
Всё будет точно так же, как и с клиента.
Коро ты клиентом называешь? У меня два понятия под клиентом понимаются:
моя программа и провайдер Альвареза :)
"sasha" ...
Всё будет точно так же, как и с клиента.
Коро ты клиентом называешь? У меня два понятия под клиентом понимаются: моя
программа и провайдер Альвареза :)
Как ты в программе параметризированный запрос пишешь ? Вот так и будет,
только не с уродскими маркерами а-ля МС ( @ ),
Как ты в программе параметризированный запрос пишешь ? Вот так и будет,
только не с уродскими маркерами а-ля МС ( @ ), а с общепринятыми (:
и\или ?)
Шикарно - спасибо!
= CURRENT_CONNECTION
INTO :DB_NAME;
EXECUTE STATEMENT 'select CURRENT_TRANSACTION from RDB$DATABASE'
ON EXTERNAL 'localhost/3051:' || :DB_NAME
AS USER 'SYSDBA' PASSWORD 'masterkey'
into :TRAN_ID;
SUSPEND;
EXECUTE STATEMENT '
Тестировал тут удалённое выполнение запросов. Выяснилось что если не
указать порт то коннект будет по порту из конфига, т.е. тому на
котором текущий сервер висит. Это ни где не отражено в документации.
Может стоит внести?
Привет!
> Из трекера я понял, что ошибка уже исправлена в FB2.5RC1. А где можно
> взять эту версию?
Если под линух - то могу собрать прям сейчас.
--
Best regards,
Sergeymailto:gebele...@gmail.com
Превед!
>> Вопрос, а где можно увидеть версию под FB 2.5 Linux_x64? Тогда смогу
>> протеститровать более глубоко.
> Такие снапшоты не собираем, жди Beta 2.
Дим, чего ты народ обманываешь? Я же тут писал - особо желающим -
могут обращаться. Сейчас систему обновлю и соберу. Всё руки не доходят
пр
> Будет там же, где и 32-битные для линуха, тока в другой папке - по
> названию понятно будет.
Положил туда же - всё равно названия отличаются и понятно что для
чего.
--
Best regards,
Sergeymailto:gebele...@gmail.com
Привет!
>> Положил туда же - всё равно названия отличаются и понятно что для
>> чего.
> Оно теперь регулярно будет выкладываться?
> Как насчет аналогичной вещи для 2.1?
Вот принародно обещаю в субботу прикрутить постоянный сборщик. Можно
сделать тоже билды по вторникам, можно раз в 2 дня, можно
"Vlad Khorsun"
> > Ну думаю не стоит, ибо COMMIT RETAIN есть )
>
> Мгм... я подумаю ещё... а пока можно в трекер занести
На предмет проверки актуальности соединения? Если правильно понял, то
занесу.
> > НАПРИМЕР:
> > Выполнили RDB$SET_CONTEXT, а потом давай из VIEW запросы писать. Ну
> > а V
> Вот зачем тебе свежие билды :)
Ну а над кем мне издеваццо исче ? :) Над людьми нельзя, а то обратно
на дурку запрут. Мне еще по выписке в прошлый раз доктор об этом
предупреждал. Кошечек и собачек просто жалко.
>
> Сервер выживает ? Должен выдать ошибку про превышение лимита рекурсии
>
Vlad Khorsun wrote:
а "убить" себя нельзя!
На это пусть ДЕ отвечает :)
Слава богу, АСТы сами себе не доставляются :-)
Ибо нефиг.
--
Дмитрий Еманов
ь содержания:
>
> EXECUTE BLOCK AS
> DECLARE VARIABLE P_DB_NAME VARCHAR(255);
> DECLARE VARIABLE P_SQL VARCHAR(1024);
> BEGIN
> SELECT FIRST 1 ATT.MON$ATTACHMENT_NAME FROM MON$ATTACHMENTS ATT
> INTO :P_DB_NAME;
> P_DB_NAME = '127.0.0.1:' || :P_DB_NAME;
>
"Alex Bekhtin" ...
Такое поведение нормально?
А что ты хотел этим сделать ? Добиться того, чтобы я запретил COMMIT\ROLLBACK
в EXECUTE STATEMENT ? Так я это сделаю ;)
--
Хорсун Влад
"PEAKTOP"
AMD Turion 2x64 "уходит в себя" за 12 секунд. :)
Вот зачем тебе свежие билды :)
Сервер выживает ? Должен выдать ошибку про превышение лимита рекурсии
и ехать дальше. Так ?
--
Хорсун Влад
8-O Дайте две
--
Regards. Ded.
> Аааа, так у тебя ещё и классик !
Ну а кто ж еще.
> --
> Хорсун Влад
>
> PS а с рекурсией будет ограничение только для внутренних коннектов, для
> внешних
> невозможно даже распознать наличие такой рекурсии.
А может max_db_connection_count в firebird.conf ?
Ну, по дефолту "-1", а мне с
"PEAKTOP" ...
Сервер выживает ? Должен выдать ошибку про превышение лимита рекурсии
и ехать дальше. Так ?
...
Не знаю. Просто я "основательно" подготовился (гы-гы), запустил
диспетчер задач...
Когда ползунок списка процессов "уехал" далеко - нервы не выдержали. К
тому же я это запустил с
, как элемент-блок PSQL и как
элемент EXECUTE STATEMENT.
Вот пример получения объекта, нас вызвавшего:
CREATE OR ALTER PROCEDURE GET_CALLER_NAME
RETURNS (
OBJECT_NAME CHAR(31),
OBJECT_TYPE SMALLINT)
AS
DECLARE VARIABLE TRAN_ID INTEGER;
begin
TRAN_ID = CURRENT_TRANSACTION;
IN AUTO
"Alex Bekhtin" ...
А что ты хотел этим сделать ? Добиться того, чтобы я запретил
COMMIT\ROLLBACK
в EXECUTE STATEMENT ? Так я это сделаю ;)
Ну думаю не стоит, ибо COMMIT RETAIN есть )
Мгм... я подумаю ещё... а пока можно в трекер занести
Вообще, оптимизация соединен
RIABLE P_DB_NAME VARCHAR(255);
DECLARE VARIABLE P_SQL VARCHAR(1024);
BEGIN
SELECT FIRST 1 ATT.MON$ATTACHMENT_NAME FROM MON$ATTACHMENTS ATT
INTO :P_DB_NAME;
P_DB_NAME = '127.0.0.1:' || :P_DB_NAME;
SELECT FIRST 1 A.TXTSQL FROM AAA A INTO :P_SQL;
EXECUTE STATEMENT :P_SQL
ON EXTE
"Хорсун Влад"
> А что ты хотел этим сделать ? Добиться того, чтобы я запретил
> COMMIT\ROLLBACK
> в EXECUTE STATEMENT ? Так я это сделаю ;)
Ну думаю не стоит, ибо COMMIT RETAIN есть )
Вообще, оптимизация соединения EXECUTE STATEMENT с внешними
датасорсами - это ну
> Такое поведение нормально?
>
Ты уточняй: твое поведение или сервера ?
З.Ы. а я думал, что таких извращенцев как я поискать надо. Ан нет, не
перевелись еще на русской земле ... (чуть не написал "богатыри") :)
"Alex Bekhtin" ...
"Vlad Khorsun"
> Ну думаю не стоит, ибо COMMIT RETAIN есть )
Мгм... я подумаю ещё... а пока можно в трекер занести
На предмет проверки актуальности соединения? Если правильно понял, то
занесу.
На предмет потери внешней тр-ции после 'COMMIT WORK'. Движок должен
или
"Victor Reshetnyak" ...
Добрый вечер!
Давно обращаю внимание на ошибку вызываемую при использовании INSERT,
с возвращаемыми значениями идентификаторов, в запросах EXECUTE STATEMENT.
Вот пример конструкции который выдает ошибку:
sql_1 = 'INSERT INTO RS_TEMPL_REP(NAM
On 23.12.2010 17:31, Victor Reshetnyak wrote:
sql_1 = 'INSERT INTO RS_TEMPL_REP(NAME) VALUES(:NAME)'
||'RETURNING ID INTO :NEW_ID';
sql_1 должно быть DSQL выражением (а не PSQL). Либо нужно обернуть в
EXECUTE BLOCK.
С уважением,
Евгений Виноградный.
Добрый день!
Возможность выполнять EXECUTE STATEMENT на другой базе
позволяет легко реализовать надежную схему односторонней
онлайн репликации.
Но, вся засада в том, что коннект к базе открывается
каждый раз при выполнении оператора. Мы собрали у себя тестовый пример.
Изменения без репликации
Boltik Evgeny wrote:
намного проще и понятней написать
EXECUTE STATEMENT ('update ' || :tablename ||
' T3 set T3.T003_1 = T3.T003_1 ' ||
' where (:VT003_1 = 0 and ()) or (:VT003_1 = 0 and ()) or
(:VT003_1 = 0 and ()) and F1 = :VT003_1b') (VT003_1, VT003_1b);
+1
"Konstantin R. Beliaev" ...
Boltik Evgeny wrote:
намного проще и понятней написать
EXECUTE STATEMENT ('update ' || :tablename ||
' T3 set T3.T003_1 = T3.T003_1 ' ||
' where (:VT003_1 = 0 and ()) or (:VT003_1 = 0 and ()) or (:VT00
Спасибо, проверил, работает. Надеюсь гугл это увидит и повторов не будет.
--
View this message in context:
http://gmane-comp-db-firebird-russian.109455.n3.nabble.com/INSERT-RETURNING-EXECUTE-STATEMENT-tp2136713p2140593.html
Sent from the gmane.comp.db.firebird.russian mailing list archive at
"A K" wrote ...
Добрый день!
Возможность выполнять EXECUTE STATEMENT на другой базе
позволяет легко реализовать надежную схему односторонней
онлайн репликации.
Но, вся засада в том, что коннект к базе открывается
каждый раз при выполнении оператора. Мы собрали у себя тестовый пример.
Попробуйте выталкивать изменения не по каждому I\U\D а по коммиту
тр-ции.
А что это изменит? Все равно каждый EXECUTE STATEMENT будет
открывать-закрывать подключение к БД. Только что "подвисать" будет не
каждая операция, а комит транзакции.
On 01.07.2011 19:47, A K wrote:
Попробуйте выталкивать изменения не по каждому I\U\D а по коммиту
тр-ции.
А что это изменит? Все равно каждый EXECUTE STATEMENT будет
открывать-закрывать подключение к БД. Только что "подвисать" будет не
каждая операция, а комит транзакции.
Транзакций существенно меньше чем CRUD операций как правило.
я понимаю, что в общем случае их будет меньше. Но, например, накопил я
в логе десять изменений в разных таблицах. Идет комит транзакции.
Мне все равно придется выполнить десять EXECUTE STATEMENT к внешней
базе, причем каждый
"A K" ...
>
Транзакций существенно меньше чем CRUD операций как правило.
я понимаю, что в общем случае их будет меньше. Но, например, накопил я
в логе десять изменений в разных таблицах. Идет комит транзакции.
Мне все равно придется выполнить десять EXECUTE STATEMENT к внешней
А по моему лучше в триггерах накапливать изменения, а репликацию делать
в отдельном потоке.
On 01.07.2011 23:55, A K wrote:
Транзакций существенно меньше чем CRUD операций как правило.
я понимаю, что в общем случае их будет меньше. Но, например, накопил я
в логе десять изменений в разных таблицах. Идет комит транзакции.
Мне все равно придется выполнить десять EXECUTE STATEMENT к
А вот с синхронной репликацией на уровне триггеров есть реальный шанс
получить большие проблемы (по моему скромному мнению это путь в никуда).
Реальная ситуация. Большая база на большом предприятии. Работает
медленно. Идея: делаем архивную БД и оперативную, в которой держим
последние год-пол
"A K" ...
Реальная ситуация. Большая база на большом предприятии. Работает медленно.
Что именно "медленно" ? Запросы или обслуживание ?
Идея: делаем архивную БД и оперативную, в которой держим последние год-полтора.
И с чего бы оно стало быстрее ? Кривые запросы, читающие кучу не
нуж
A K пишет:
А вот с синхронной репликацией на уровне триггеров есть реальный шанс
получить большие проблемы (по моему скромному мнению это путь в никуда).
Реальная ситуация. Большая база на большом предприятии. Работает
медленно. Идея: делаем архивную БД и оперативную, в которой держим
последние
On 04.07.2011 19:48, A K wrote:
Идея: делаем архивную БД и оперативную, в которой держим
последние год-полтора. Изменения в оперативной БД, должны попадать
на архивную.
Возьмите/купите одну из готовых систем репликации под Firebird - будет
дешевле и быстрее, чем изобретать велосипед.
Может в
A K wrote:
Реальная ситуация. Большая база на большом предприятии. Работает
медленно. Идея: делаем архивную БД и оперативную, в которой держим
последние год-полтора.
Это ничего почти не даст. Если запросы используют только данные за
последнее время, то размер таблиц фактически не влияет за
в первую очередь обслуживание. бэкап-восстановление 5-7 часов.
для предприятия с почти непрерывным циклом это неприятно.
хорошо что есть окно в воскр.
On 04.07.2011 17:40, Vlad Khorsun wrote:
"A K" ...
Реальная ситуация. Большая база на большом предприятии. Работает
медленно.
Что именно "м
Может вполне хватит следующих действий и при существующей структуре:
* Более производительное оборудование специально выделенное под работу
СУБД - быстрый дисковый массив, много оперативной памяти, 64битный
Firebird;
если бы мы писали на оракле или на 1С, тогда да, стандартный подход
придти к к
а так, имеем таких клиентов, которые элементарно жмутся на технике и
тяжко им что-то втолковать.
Значит остальное попробовать. Был случай когда добавление двух индексов
уменьшило время выполнения операции с 30 минут до 20 секунд. Наличие
долгих снэпшот транзакций может сильно нагружать сервер
.
-Original Message-
From: ru-firebird@googlegroups.com [mailto:ru-firebird@googlegroups.com] On
Behalf Of Евгений Виноградный
Sent: Tuesday, July 05, 2011 9:37 PM
To: ru-firebird@googlegroups.com
Subject: Re: EXECUTE STATEMENT к другой базе в рамках установленного
коннекта
> а так, имеем таких клиен
On 05.07.2011 22:00, Михаил Викторович wrote:
> В итоге все равно будет перегрузка по производительности. Решение с
архивом
> верное. Теперь когда проектирую новые системы сразу предусматриваю
> архивирование.
Тем не менее для более дельных рекомендаций по данному случаю мало
информации:
* В
>Тем не менее для более дельных рекомендаций ...
А зачем мне Ваши рекомендации? Разве их я спрашивал?
Я написал свое мнение о том, что человек прав, придя к идее архива. На счет
реализации на триггерах и использования передачи в другую базу возможно вам
видней, такой вариант пока не использовал и
Михаил Викторович wrote:
Я написал свое мнение о том, что человек прав, придя к идее архива.
Это плохая идея.
Если уж делать ахрив, то создавая копию базы на на какой то момент времени.
В одном из проектов мы использовали архивные таблицы в той же базе. Конечно
время бакапа растет, но пока
1 - 100 of 122 matches
Mail list logo