Subject | Does Firebird offer any priority support? |
---|---|
Author | Ivaylo Spasov |
Post date | 2005-08-15T10:42:52Z |
Does Firebird offer any priority support?
We use one Firebird 1.5.1 server and (about) 50 client applications from
50 different machines in a LAN.
At a specific time in the month some of the clients perform big and ugly
queries, which take more than 30 minutes to finish and return results.
These SQLs are blocking the server.
At the same time the client applications are using a large number of
small queries (I mean small, fast SQLs), which are essential for the UI
manipulation.
So the blocked server is practically stopping the work of all the
clients. That's what we are trying to avoid.
We are thinking about some way to make Firebird distinguish those
everyday-small-fast-SQLs and the big-ugly-monthly-SQLs.
If we can trick the server to give priority to the UI queries that would
increase the overall performance of our solution tremendously.
So here are the questions:
1. Can we (and HOW to) give priority to USERS? (i.e. user DAYLY_SQL is
granted more cycles than user MONTHLY_SQL)
2. Can we (and HOW to) give priority to SQL-queries? (i.e. queries
without joins in their plan)
3. Can we (and HOW to) give priority to a specific machine? (i.e. one PC
is the MonthlySQL machine)
Unfortunately, all these queries must be executed on the same database,
because it is changing fast and is too big (300mb) to be backed up too
often.
Please give us some advice on that issue or some idea for another
INTERBASE based SQL server to migrate our application to.
We use one Firebird 1.5.1 server and (about) 50 client applications from
50 different machines in a LAN.
At a specific time in the month some of the clients perform big and ugly
queries, which take more than 30 minutes to finish and return results.
These SQLs are blocking the server.
At the same time the client applications are using a large number of
small queries (I mean small, fast SQLs), which are essential for the UI
manipulation.
So the blocked server is practically stopping the work of all the
clients. That's what we are trying to avoid.
We are thinking about some way to make Firebird distinguish those
everyday-small-fast-SQLs and the big-ugly-monthly-SQLs.
If we can trick the server to give priority to the UI queries that would
increase the overall performance of our solution tremendously.
So here are the questions:
1. Can we (and HOW to) give priority to USERS? (i.e. user DAYLY_SQL is
granted more cycles than user MONTHLY_SQL)
2. Can we (and HOW to) give priority to SQL-queries? (i.e. queries
without joins in their plan)
3. Can we (and HOW to) give priority to a specific machine? (i.e. one PC
is the MonthlySQL machine)
Unfortunately, all these queries must be executed on the same database,
because it is changing fast and is too big (300mb) to be backed up too
often.
Please give us some advice on that issue or some idea for another
INTERBASE based SQL server to migrate our application to.