Hallo Chris,
schaue doch mal in der firebird.conf dort gibt es zwei Parameter.
Jedoch finde ich die Antwortzeit seltsam, tritt dies nur beim Lesen auf, dies kann ja schon mal sein, oder auch beim Schreiben?
Hast du eventuell einen schlechten Index, der beim Insert Zeit frisst? Ich hatte dieses Problem mal, weil einer der Gateways
(Stück Software zwischen
DB und Software) zuwenig Speicher hatte und dort die Transaktionen aufliefen, aber auch ein
Neustart der Switch hatte mir mal geholfen. Bei mir liegt das Problem fast nie an der
DB selber.
Prüfe doch mal ob noch Transaktionen offen sind!
Code:
execute block
returns
(
Kind varchar(30),
ID bigint,
Time_Stamp timestamp,
Data blob sub_type text,
State integer
)
as
declare userName varchar(256);
declare dbName varchar(256);
declare tid bigint;
declare aid bigint;
begin
for select
mon$timestamp,
mon$state,
mon$transaction_id,
mon$attachment_id
from
mon$transactions t
-- where
-- mon$transaction_id = t.mon$oldest_active
order by
case when mon$transaction_id = t.mon$oldest_active then
0
else
1
end,
mon$transaction_id
into
:Time_Stamp, :State, :ID, :AID
do
begin
Data = null;
Kind = 'Transaction';
suspend;
TID = ID;
for select
trim(mon$remote_address)
||' -> '|| trim(mon$remote_process),
mon$remote_pid,
mon$user,
mon$attachment_name
from
MON$ATTACHMENTS
where
mon$attachment_id = :AID
into
:Data, :ID, :userName, :dbName
do
begin
State = null;
Kind = 'Process';
suspend;
ID = null;
Kind = 'Database';
Data = dbName;
suspend;
Kind = 'User';
Data = userName;
suspend;
Kind = 'Statement';
for select
mon$statement_id,
mon$timestamp,
mon$sql_text,
mon$state
from
MON$STATEMENTS
where
mon$transaction_id = :tid
and mon$attachment_id = :aid
into
:ID, :Time_Stamp, :Data, :State
do
suspend;
end
end
end
LG
Dirk