Subject | Re: Fbserver eating CPU...not taking advantage of memory |
---|---|
Author | Adam |
Post date | 2005-05-22T06:15:21Z |
--- In firebird-support@yahoogroups.com, "Aaron Abend" <aabend@v...>
wrote:
Where a system is bound tends to be a trend on what limits are being
frequently hit. The truth is that CPU, Disk, and RAM will all limit
the performance of the system, but in your case the CPU seems to be
the cause of the problems.
I am
relatively efficient with respect to resources, but see below.
are being run are doable in an efficient manner with the index
structures you have given it.
whereas a lot of other databases are not. In other words, an ascending
index can not help you in a select max() query, or a descending order
by statement.
If you have ported concepts from one system to another, you may need
to add a descending index on some of your fields.
the priority was lowered, if your application was waiting for the
database to run queries, it is not going to speed it up
lot of garbage, then you may want to turn off auto sweep and run it
"overnight" or whenever your system isn't used..
Hope that helps
Adam
wrote:
> I did not mean that one can replace CPU usage with RAM. It is justthat in
> any database system, you are going to be bound by memory, CPU, or disk.I like to think of how it as limited rather than how it is bound.
Where a system is bound tends to be a trend on what limits are being
frequently hit. The truth is that CPU, Disk, and RAM will all limit
the performance of the system, but in your case the CPU seems to be
the cause of the problems.
I am
> beginning to conclude that in fact our app does not need any morememory and
> Firebird is simply a very CPU intensive program (unlike SQL Server,which
> performs the same operations on the same computer using much more memoryThat has not been my experience with Firebird. I have found it to be
> (about 4x) and much less CPU).
>
relatively efficient with respect to resources, but see below.
>complex SQL
>
> The problem with optimization is that our application assembles
> (correlated subqueries, joins, set operations, the works) on the fly. Socan trap
> it's not as though we can take a query and test it in advance. We
> the queries that we suspect and test them, but the shape of the data canFair enough, what you need to determine is whether the queries that
> vary in each user's system.
>
are being run are doable in an efficient manner with the index
structures you have given it.
>records
>
> We do all our testing on large real-life datasets with about 50,000
> after we do development on demo datasets. Having done databaseapplication
> development for 25 years, I have thought of most of the obviouserrors, but
> I do appreciate your ideas. It is the Firebird-specific stuff that Ireally
> need help on.Your thinking here may be right. Firebirds indices are directional,
> My thinking right now is that our indexing, which drew from
> experience with other databases, is probably not optimal for Firebird.
>
whereas a lot of other databases are not. In other words, an ascending
index can not help you in a select max() query, or a descending order
by statement.
If you have ported concepts from one system to another, you may need
to add a descending index on some of your fields.
>Firebird
>
> Another thought - is there any way to reduce the priority of the
> process in the config file? Is there any harm to reducing its priority?I would look for the source of the problem, in either case, even if
>
the priority was lowered, if your application was waiting for the
database to run queries, it is not going to speed it up
>Make sure you check out Anne's suggestion, if you are building up a
>
> We'll keep exploring the problem machine to see what we come up with.
>
lot of garbage, then you may want to turn off auto sweep and run it
"overnight" or whenever your system isn't used..
Hope that helps
Adam