473,563 Members | 2,767 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

.net Application Performance

Hello

I manage a web based VB .net application. This application has 3
components:
1. Webapp (this calls the executibles)
2. database
3. business logic is contained in individual exe application that get
called in a sequence to do some heavy calculations (mainly DB
operations with in memory datasets)

I am having an issue with performance with this architecture. the exes
themselved are multi-threaded and can have multiple instances (this
means that there are these mutliple datasets on the app server). Are
there any guidelines that can help me establish how I can improve
performance - increasing memory, adding an app server (clustering),
adding cpus, etc. Any advice from you will be helpful!

Thanks

KS

Dec 7 '06 #1
4 1509
Hello sk******@gmail. com,
I manage a web based VB .net application. This application has 3
components:
1. Webapp (this calls the executibles)
2. database
3. business logic is contained in individual exe application that get
called in a sequence to do some heavy calculations (mainly DB
operations with in memory datasets)
What does "business logic is contained in individual exe" mean?
Who starts them, where are they hosted?
I am having an issue with performance with this architecture.
How do u get this?
>the exes themselved are multi-threaded and can have multiple instances
(this means that there are these mutliple datasets on the app server).
Have u tried to use caching?
Are there any guidelines that can help me establish how I can improve
performance - increasing memory, adding an app server (clustering),
adding cpus, etc. Any advice from you will be helpful!
Firstly use some kind of performance tool to understand the bottleneck.

---
WBR,
Michael Nemtsev [C# MVP] :: blog: http://spaces.live.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche
Dec 7 '06 #2
Mike

Thanks for you resonse.

1. "business logic is contained in individual exe" means that the
webapp does not contain the actual calculations. These are kicked off
from the web app on a button click by the user - we call each run a
process.

2. The business logic itself reads the data from files... validates
them pumps them into the DB (SQL Server) - this happens pretty quickly.
Then reads the data from the DB (selects) into in-memory tables.
Applies some rules on them, and makes inserts into another in-memory
tables and finally inserts and updates the SQL Server DB tables. The
part that takes long when multiple users kick off their own processes
is the actual calculation where there maybe in-memory tables from
multiple processes.

3. The reason I say that there is a performance issue is that the time
to do the actual calculation increases when there are multiple
processes running simultaeneously .

4. No we have not yet tries cacheing. We were concentrating on
optimizing the sql queries till now. Will look into that now.

5. Yes, I am looking into that as well. Are there some that you can
suggest? I have ANTS so far that I think will do the job and is
reasonably priced.

Thanks much for you help.

rgds

KS
Michael Nemtsev wrote:
Hello sk******@gmail. com,
I manage a web based VB .net application. This application has 3
components:
1. Webapp (this calls the executibles)
2. database
3. business logic is contained in individual exe application that get
called in a sequence to do some heavy calculations (mainly DB
operations with in memory datasets)

What does "business logic is contained in individual exe" mean?
Who starts them, where are they hosted?
I am having an issue with performance with this architecture.

How do u get this?
the exes themselved are multi-threaded and can have multiple instances
(this means that there are these mutliple datasets on the app server).

Have u tried to use caching?
Are there any guidelines that can help me establish how I can improve
performance - increasing memory, adding an app server (clustering),
adding cpus, etc. Any advice from you will be helpful!

Firstly use some kind of performance tool to understand the bottleneck.

---
WBR,
Michael Nemtsev [C# MVP] :: blog: http://spaces.live.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche
Dec 7 '06 #3
Hello sk******@gmail. com,

s1. "business logic is contained in individual exe" means that the
swebapp does not contain the actual calculations. These are kicked
soff from the web app on a button click by the user - we call each run
sa process.

So it's just the EXE process? hmmmm.... what's the reason of this and not
the some kind of appservices, like enterpriseServi ces or WebServices?

s2. The business logic itself reads the data from files... validates
sthem pumps them into the DB (SQL Server) - this happens pretty
squickly.
sThen reads the data from the DB (selects) into in-memory tables.
sApplies some rules on them, and makes inserts into another in-memory
stables and finally inserts and updates the SQL Server DB tables.

Which DB is used? I'm asking this because in case of SQLServer 2005 you can
save your resources performing reading data and applying rules completly
on the DB size with using SQL .NET components

BTW, have u considered any possible cased to load data from files directly
to db and process all work there?

sThe
spart that takes long when multiple users kick off their own processes
sis the actual calculation where there maybe in-memory tables from
smultiple processes.

Yep, so consider sharing for the data, if they are the same for the all users
(MS Cache Application Blocks as the case)
BTW, I'd look at the object pooling too (for example in EnterpriseServi ces
it's can be turned on/off too easy)

s4. No we have not yet tries cacheing. We were concentrating on
soptimizing the sql queries till now. Will look into that now.

Right, the more calculation next to DB the better performance

s5. Yes, I am looking into that as well. Are there some that you can
ssuggest? I have ANTS so far that I think will do the job and is
sreasonably priced.

CLRProfiler, Compuware DevPartnet, JetBrains .Trace
sMichael Nemtsev wrote:
s>
>Hello sk******@gmail. com,
>>I manage a web based VB .net application. This application has 3
components:
1. Webapp (this calls the executibles)
2. database
3. business logic is contained in individual exe application that
get
called in a sequence to do some heavy calculations (mainly DB
operations with in memory datasets)
What does "business logic is contained in individual exe" mean? Who
starts them, where are they hosted?
>>I am having an issue with performance with this architecture.
How do u get this?
>>the exes themselved are multi-threaded and can have multiple
instances (this means that there are these mutliple datasets on the
app server).
Have u tried to use caching?
>>Are there any guidelines that can help me establish how I can
improve performance - increasing memory, adding an app server
(clustering ), adding cpus, etc. Any advice from you will be
helpful!
Firstly use some kind of performance tool to understand the
bottleneck.

---
WBR,
Michael Nemtsev [C# MVP] :: blog: http://spaces.live.com/laflour
"At times one remains faithful to a cause only because its opponents
do not cease to be insipid." (c) Friedrich Nietzsche
---
WBR,
Michael Nemtsev [C# MVP] :: blog: http://spaces.live.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche
Dec 7 '06 #4
rgds,

A simple way to test the performance of your application is to log the
time before and after blocks of code in your application. Once you can
identify the most time-consuming piece you can focus more on it and
eventually identify the best place to apply some optimization
techniques.

Until you know the which specific pieces are the cause for the delays
it will be hard to know what techniques to apply to resolve your
issues.

In general, even though the SQL and programming logic is not in a
code-behind, it sounds like you still have the code running either in a
class library or a console application which is not on the same machine
as the database server. If you are transferring the data from the
server to a remote client then you will find the time to transfer all
of that data is significant. A simple way to cut down on that is to
make sure you are not selecting all rows and instead trim it down to
just the columns you need.

Next you have to consider the costs of pulling in that data and parsing
it into a form you can use. The cost of casting a Integer from the
Object that the DataSet provides can add up. If at all possible, place
more code into your database as stored procedures. You can do quite a
bit with T/SQL, such as working with table variables and while loops to
look at the data to implement your business logic. Normally you do not
want a lot of business logic in your stored procedures, but when
performance is more important as it seems here, it can be the right
option.

I just moved a good deal of logic into a T/SQL script this week and it
went from running for 1 hour to 3 minutes. And that was likely due to
eliminating the data transfer and type casting costs.

Lastly, review each of your select statements and table indexes. Make
sure when you are joining tables you are doing so with indexed values.
And if you do join across many tables, consider a data warehousing
approach where you pre-fill a denormalized table with the contents of
the expensive query so that when you use it later it comes back very
quickly.
Brennan Stehling
http://brennan.offwhite.net/blog/

sk******@gmail. com wrote:
Mike

Thanks for you resonse.

1. "business logic is contained in individual exe" means that the
webapp does not contain the actual calculations. These are kicked off
from the web app on a button click by the user - we call each run a
process.

2. The business logic itself reads the data from files... validates
them pumps them into the DB (SQL Server) - this happens pretty quickly.
Then reads the data from the DB (selects) into in-memory tables.
Applies some rules on them, and makes inserts into another in-memory
tables and finally inserts and updates the SQL Server DB tables. The
part that takes long when multiple users kick off their own processes
is the actual calculation where there maybe in-memory tables from
multiple processes.

3. The reason I say that there is a performance issue is that the time
to do the actual calculation increases when there are multiple
processes running simultaeneously .

4. No we have not yet tries cacheing. We were concentrating on
optimizing the sql queries till now. Will look into that now.

5. Yes, I am looking into that as well. Are there some that you can
suggest? I have ANTS so far that I think will do the job and is
reasonably priced.

Thanks much for you help.

rgds

KS
Michael Nemtsev wrote:
Hello sk******@gmail. com,
I manage a web based VB .net application. This application has 3
components:
1. Webapp (this calls the executibles)
2. database
3. business logic is contained in individual exe application that get
called in a sequence to do some heavy calculations (mainly DB
operations with in memory datasets)
What does "business logic is contained in individual exe" mean?
Who starts them, where are they hosted?
I am having an issue with performance with this architecture.
How do u get this?
>the exes themselved are multi-threaded and can have multiple instances
(this means that there are these mutliple datasets on the app server).
Have u tried to use caching?
Are there any guidelines that can help me establish how I can improve
performance - increasing memory, adding an app server (clustering),
adding cpus, etc. Any advice from you will be helpful!
Firstly use some kind of performance tool to understand the bottleneck.

---
WBR,
Michael Nemtsev [C# MVP] :: blog: http://spaces.live.com/laflour

"At times one remains faithful to a cause only because its opponents do not
cease to be insipid." (c) Friedrich Nietzsche
Dec 7 '06 #5

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

Similar topics

5
1725
by: Steve_CA | last post by:
Hello all, I've been recruited to assist in diagnosing and fixing a performance problem on an application we have running on SQL Server 7. The application itself is third party software, so we can't get at the source code. It's a Client Management system, where consultants all over the country track their client meetings, results, action...
3
1638
by: Varkey | last post by:
Dear friends, I am new to .NET based app development and have a pretty elementary query, I suppose... I have caught up with the basics of .NET pretty well, thanks to some Microsoft VB/ASP background and helpful colleagues... The query goes... In a DOTNET based desktop application environment, does it make sense to have each copy of the...
3
3114
by: Amit Dedhia | last post by:
Hi I am developing a Dot net application (involving image processing) on a uni processor. It works well on my machine. I then take all my code on a multi processor, build and run the application there. There is performance degradation. The usual performance of the application on MP machine is better than that of uni processor machine....
8
2668
by: nickdu | last post by:
I'm trying to isolate "applications" into their own application domain within a single process. I've quoted applications because it's a logical representation of an application. Basically it consists of a bunch of components supplied by some application group. I got this to work, somewhat. The problem is that the application performs...
6
1262
by: Just D | last post by:
Hi, How slowly is to work with these objects - Application and Session ? Is it much better to create a huge project or some static library and place all variables/constants there instead of many Session objects? When I removed some of Session objects and replaced by another approaches I got an illusion that application started working...
4
3765
by: Diffident | last post by:
Hello All, IIS 6.0 - I have an application which resides in its own application pool. Does anyone know if we can create multiple application pools for the same application? If we can create multiple application pools to serve a single application's request will it improve the performance? Thanks for your suggestions!!
1
2442
by: jvn | last post by:
I am experiencing a particular problem with performance counters. I have created a set of classes, that uses System.Diagnostics.PerformanceCounter to increment custom performance counters (using .Net 2.0) The performance counter categories have been successfully created. When the set of classes are used by a WinForm test harness application,...
3
1555
by: Benny Ng | last post by:
Dear All, Now I met some performance problems in my application. Because according to our business. The size of some web forms are larger than 1xxx MB. So it takes a long time for user opening a web page. Surely we are modifying some source code for performance improvment. But now i'm thinking should we improve the application performance...
2
2741
by: jphelan | last post by:
Ever since I successfully applied some techniques for increasing the speed of my 17 meg. Application; it has only made me hunger for more. First, let me list what I have done so far: 1. Split the application and database into front and back-ends, 2. Increased the load-time of my application by "pre-loading my heaviest forms when the...
0
7888
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. ...
0
8106
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that...
0
7950
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 protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the...
1
5484
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes...
0
5213
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert...
0
3643
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in...
0
3626
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
1
1200
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
924
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating...

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.