473,395 Members | 1,891 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,395 software developers and data experts.

Speeding Intermedia Query

Hi all,

We've got an Oracle database in a Web application. Intermedia Text
queries are an important part of the usage and work fine.

The problem is that in order to generate a certain web page, we need
to perform a great number of intermedia queries (like 14 o 15). This
is part of the bussiness requirements and we cannot change it. So,
even if each individual query is not that slow (from 1 to 3 seconds)
the accumulation of them is quite fatal.

My question is: what steps should be done to speed up the application?

We've believe the application (sqls, etc...) is well designed. We
cache everything that is cachable (query results, etc..). Our hardware
is state-of-art Intel (dual processor, 1Gb ram, good hard disks).

The size of the indexed data is about 20Gb.

Apparently the bottlneck is IO (since CPU is not used 100%, and the
network is not the problem). We have thought in adding more RAM, but
since its a 32 bit server, the maximum would be 2Gb, and we are not
sure whether this would make any difference.

On the other hand we could buy more disks and try to spread the IO
access evenly, but this is also a limited option.

So, what can be done when the application is not fast enough??

Thanks,

-angel
Jul 19 '05 #1
6 2188
"Angel Faus" <af***@corp.vlex.com> wrote in message
news:7a*************************@posting.google.co m...
Hi all,

We've got an Oracle database in a Web application. Intermedia Text
queries are an important part of the usage and work fine.

The problem is that in order to generate a certain web page, we need
to perform a great number of intermedia queries (like 14 o 15). This
is part of the bussiness requirements and we cannot change it. So,
even if each individual query is not that slow (from 1 to 3 seconds)
the accumulation of them is quite fatal.

My question is: what steps should be done to speed up the application?

We've believe the application (sqls, etc...) is well designed. We
cache everything that is cachable (query results, etc..). Our hardware
is state-of-art Intel (dual processor, 1Gb ram, good hard disks).

The size of the indexed data is about 20Gb.

Apparently the bottlneck is IO (since CPU is not used 100%, and the
network is not the problem). We have thought in adding more RAM, but
since its a 32 bit server, the maximum would be 2Gb, and we are not
sure whether this would make any difference.

On the other hand we could buy more disks and try to spread the IO
access evenly, but this is also a limited option.

So, what can be done when the application is not fast enough??

Thanks,

-angel


So you can't change the application which infers that the application is
some sort of vender application. If so then call the vendor and bitch. Get
Tom Kyte's book Expert 1 on 1 Oracle. I would look up stored outlines and
see if there is something there. Additionally, I would call up the vendor
and complain. Poorly written application code is over 90% of the time the
reason the application performance and scalability are in the toilet. If
you can prove it then so much the better. (do they use bind variables, do
they parse once and execute many times, etc.)

You need to find your bottle neck (statspack is a good tool to help with
this) and then attach the problem that way. There is no way we can
reasonably tell you how to speed things up without a lot of detailed
information.
Jim
Jul 19 '05 #2
Jim Kennedy wrote:
"Angel Faus" <af***@corp.vlex.com> wrote in message
news:7a*************************@posting.google.co m...
<snip!>
So you can't change the application which infers that the application is
some sort of vender application. If so then call the vendor and bitch. Get
Tom Kyte's book Expert 1 on 1 Oracle. I would look up stored outlines and
see if there is something there. Additionally, I would call up the vendor
and complain. Poorly written application code is over 90% of the time the
reason the application performance and scalability are in the toilet. If
you can prove it then so much the better. (do they use bind variables, do
they parse once and execute many times, etc.)

Hear, hear! Wholeheartedly agree
--
Regards, Frank van Bortel

Jul 19 '05 #3
Hi,

First of all, thanks for answering.
So you can't change the application which infers that the application is
some sort of vender application.
I can change the application, but my application _needs_ to perform a
dozen intermedia queries to create a single web page. This is an
intrinsic bussines requirement, not a side-effect of poor
implementation.
Tom Kyte's book Expert 1 on 1 Oracle. I would look up stored outlines and
see if there is something there. Additionally, I would call up the vendor
and complain. Poorly written application code is over 90% of the time the
reason the application performance and scalability are in the toilet. If
you can prove it then so much the better. (do they use bind variables, do
they parse once and execute many times, etc.)
Yep. But I did say that, as far as I know, the application code is
well implemented. We do use bind variables, whenever we can we parse
once and execute many times, etc.
You need to find your bottle neck (statspack is a good tool to help with
this) and then attach the problem that way. There is no way we can
reasonably tell you how to speed things up without a lot of detailed
information.


I have used statspack, and tkprof, and everything, and the conclusion
is that the bottleneck is, simply put, that oracle _has_ to do a lot
of work to do what I am asking it to do.

From you answers I gather that I did not correctly formulate the
question.

Let me try again: supposing there are no big mistakes in the
application, and supposing that we believe that there is a IO
bottleneck, what is the most efficient hardware answer to this?

I can imagine some of them:

- Adding more disks and stripping the data between them.
- Moving to a 64 bits server with insane amounts of RAM.
- Spending huge amounts of dolars to get a RAC.

But I do not honestly know their effectivity. What is the usual way of
improving IO?

Any advice from the wiser ones would be appreciated. I promise to keep
working in the application side of the question.

A final note: we are talking about reducing response time, not getting
more throughput.

-angel
Jul 19 '05 #4
"Angel Faus" <af***@corp.vlex.com> wrote in message
news:7a***********************@posting.google.com. ..
Hi,

First of all, thanks for answering.
So you can't change the application which infers that the application is
some sort of vender application.


I can change the application, but my application _needs_ to perform a
dozen intermedia queries to create a single web page. This is an
intrinsic bussines requirement, not a side-effect of poor
implementation.
Tom Kyte's book Expert 1 on 1 Oracle. I would look up stored outlines and see if there is something there. Additionally, I would call up the vendor and complain. Poorly written application code is over 90% of the time the reason the application performance and scalability are in the toilet. If you can prove it then so much the better. (do they use bind variables, do they parse once and execute many times, etc.)


Yep. But I did say that, as far as I know, the application code is
well implemented. We do use bind variables, whenever we can we parse
once and execute many times, etc.
You need to find your bottle neck (statspack is a good tool to help with
this) and then attach the problem that way. There is no way we can
reasonably tell you how to speed things up without a lot of detailed
information.


I have used statspack, and tkprof, and everything, and the conclusion
is that the bottleneck is, simply put, that oracle _has_ to do a lot
of work to do what I am asking it to do.

From you answers I gather that I did not correctly formulate the
question.

Let me try again: supposing there are no big mistakes in the
application, and supposing that we believe that there is a IO
bottleneck, what is the most efficient hardware answer to this?

I can imagine some of them:

- Adding more disks and stripping the data between them.
- Moving to a 64 bits server with insane amounts of RAM.
- Spending huge amounts of dolars to get a RAC.

But I do not honestly know their effectivity. What is the usual way of
improving IO?

Any advice from the wiser ones would be appreciated. I promise to keep
working in the application side of the question.

A final note: we are talking about reducing response time, not getting
more throughput.

-angel


If you already know what the bottleneck is (and there is always a
bottleneck) then reduce it. If the problem is that you need more IO then
you have to find a way to increase more IO. That may mean multiple
controllers and multiple disk drives . It depends upon where the bottleneck
is.

Jim
Jul 19 '05 #5
Hi,

First of all, thanks for answering.
So you can't change the application which infers that the application is
some sort of vender application.
I can change the application, but my application _needs_ to perform a
dozen intermedia queries to create a single web page. This is an
intrinsic bussines requirement, not a side-effect of poor
implementation.
Tom Kyte's book Expert 1 on 1 Oracle. I would look up stored outlines and
see if there is something there. Additionally, I would call up the vendor
and complain. Poorly written application code is over 90% of the time the
reason the application performance and scalability are in the toilet. If
you can prove it then so much the better. (do they use bind variables, do
they parse once and execute many times, etc.)
Yep. But I did say that, as far as I know, the application code is
well implemented. We do use bind variables, whenever we can we parse
once and execute many times, etc.
You need to find your bottle neck (statspack is a good tool to help with
this) and then attach the problem that way. There is no way we can
reasonably tell you how to speed things up without a lot of detailed
information.
I have used statspack, and tkprof, and everything, and the conclusion
is that the bottleneck is, simply put, that oracle _has_ to do a lot
of work to do what I am asking it to do.

From you answers I gather that I did not correctly formulate the
question.

Let me try again: supposing there are no big mistakes in the
application, and supposing that we believe that there is a IO
bottleneck, what is the most efficient hardware answer to this?

I can imagine some of them:

- Adding more disks and stripping the data between them.
- Moving to a 64 bits server with insane amounts of RAM.
- Spending huge amounts of dolars to get a RAC.

But I do not honestly know their effectivity. What is the usual way of
improving IO?

Any advice from the wiser ones would be appreciated. I promise to keep
working in the application side of the question.

A final note: we are talking about reducing response time, not getting
more throughput.

-angel
Jun 27 '08 #6
"Angel Faus" <af***@corp.vlex.comwrote in message
news:7a***********************@posting.google.com. ..
Hi,

First of all, thanks for answering.
So you can't change the application which infers that the application is
some sort of vender application.

I can change the application, but my application _needs_ to perform a
dozen intermedia queries to create a single web page. This is an
intrinsic bussines requirement, not a side-effect of poor
implementation.
Tom Kyte's book Expert 1 on 1 Oracle. I would look up stored outlines
and
see if there is something there. Additionally, I would call up the
vendor
and complain. Poorly written application code is over 90% of the time
the
reason the application performance and scalability are in the toilet.
If
you can prove it then so much the better. (do they use bind variables,
do
they parse once and execute many times, etc.)

Yep. But I did say that, as far as I know, the application code is
well implemented. We do use bind variables, whenever we can we parse
once and execute many times, etc.
You need to find your bottle neck (statspack is a good tool to help with
this) and then attach the problem that way. There is no way we can
reasonably tell you how to speed things up without a lot of detailed
information.

I have used statspack, and tkprof, and everything, and the conclusion
is that the bottleneck is, simply put, that oracle _has_ to do a lot
of work to do what I am asking it to do.

From you answers I gather that I did not correctly formulate the
question.

Let me try again: supposing there are no big mistakes in the
application, and supposing that we believe that there is a IO
bottleneck, what is the most efficient hardware answer to this?

I can imagine some of them:

- Adding more disks and stripping the data between them.
- Moving to a 64 bits server with insane amounts of RAM.
- Spending huge amounts of dolars to get a RAC.

But I do not honestly know their effectivity. What is the usual way of
improving IO?

Any advice from the wiser ones would be appreciated. I promise to keep
working in the application side of the question.

A final note: we are talking about reducing response time, not getting
more throughput.

-angel
If you already know what the bottleneck is (and there is always a
bottleneck) then reduce it. If the problem is that you need more IO then
you have to find a way to increase more IO. That may mean multiple
controllers and multiple disk drives . It depends upon where the bottleneck
is.

Jim
Jun 27 '08 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

0
by: Bennett Haselton | last post by:
I have a MySQL query running inside a CGI script on my site that, at random intervals, seems to take 10-20 seconds to complete instead of less than 1 second. I spent so much time trying to track...
3
by: David | last post by:
Consider this SQL Query: ----------------------------------------------------------------- SELECT c.CASE_NBR, DATEDIFF(d, c.CREATE_DT, GETDATE()) AS Age, c.AFFD_RCVD, c.PRV_CRD_ISS, x.RegE,...
3
by: John D | last post by:
We have a dynamic SP that dependant on a user name will run a selected tailored to them. One of the criteria is the number of rows retrieved, which we include using 'top @varNoOfRows' in the...
9
by: mfyahya | last post by:
Hi, I'm new to databases :) I need help speeding up select queries on my data which are currently taking 4-5 seconds. I set up a single large table of coordinates data with an index on the fields...
2
by: Wayne | last post by:
I am running a complex query using about 25 criteria that are entered on a query form. If any individual criteria isn't required its field is left as "*" on the form. When I run the query the...
2
by: simon_w3 | last post by:
Hi All, I'm trying to figure out how I can speed up a fragment of code (which has been converted from vb6 to .NET) that reads data from a database. My knowledge on database programming is...
11
by: Dan Sugalski | last post by:
Is there any good way to speed up SQL that uses like and has placeholders? Here's the scoop. I've got a system that uses a lot of pre-generated SQL with placeholders in it. At runtime these SQL...
3
by: bplantes | last post by:
I have designed a form to bridge one customer record with a master customer record in a table. For example: CustomerName, CustomerNumber: ABC Company, 101; ABC Corp. , 102; ABC Inc., 103; ...
0
by: Frank | last post by:
Robert Vabo wrote: Versions? You'll needs EE to start with... -- Regards, Frank van Bortel
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: ryjfgjl | last post by:
In our work, we often receive Excel tables with data in the same format. If we want to analyze these data, it can be difficult to analyze them because the data is spread across multiple Excel files...
1
by: nemocccc | last post by:
hello, everyone, I want to develop a software for my android phone for daily needs, any suggestions?
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.