1. Kailainathan Kasinathan
  2. PowerBuilder
  3. Friday, 01 June 2018

Hi all,

We have an application built in powerbuilder. It is mostly based on data entry and retrieval. Of late, we have been facing issues with performance. Opening of the windows is taking a longer duration and all activities are taking a longer time.We have performed a trace also but we weren't able to  find out the cause.. Is there any way to reduce the time and improve the performance? Can you guys please help on this?

Alfredo Aldama Accepted Answer Pending Moderation
0
Votes
Undo
Hi, In my experience the first step is why? Front end, database, network or another component present low performance, wich? In this case if application is the problem you could make it with debug for a trace, analyze the log for identifying the problem. Datawindows support easy 100,000 more use retrieve as need
Comment
There are no comments made yet.
  1. Wednesday, 6 June 2018
  2. PowerBuilder
  3. # 1
Chris Pollach Accepted Answer Pending Moderation
0
Votes
Undo

Hi Kailainathan;

     My suggestion would be to use the Application Profile feature of the PB IDE or directly in your PB App's EXE via the Profile commands to build a run-time performance profile of your application. Then using the rules of ROI, check out the Top 10 worst objects and their SQL and focus on the reason(s) for the slowness or related high processing times of these result sets.

    You can get more information about this feature and its related commands in the PN Help under the "About tracing and profiling an application" section.

Food for thought.

Regards ... Chris

Comment
Hi Pollach,



I did as you told and found out many datawindows being present. We have each dropdown as a seperate datawindow. Does it affect the application's performance?

  1. Kailainathan Kasinathan
  2. Wednesday, 6 June 2018
Hi Kailainathan;



   Yes, DDDW's can have a tremendous adverse effect on the performance of the parent DWO. All the DDDW's will fire their Retrieve ( ) commands when the parent DWO starts to retrieve its result set. A great way to circumvent this from happening, is to disable the AutoRetrieve property in the DDDW edit style in the DW painter, as follows:







The step would be to use the DDDW "Drop" event in the DW Control. When the DDDW is requested in that event - then use the GetChild ( ) and Retrieve (  ) commands in that event to have your App populate the DDDW's buffer. That way, the DDDW's only populate when absolutely need by the end user. This approach can save your App's DW's a "ton" of overhead.







Food for thought.



Regards ... Chris



 

  1. Chris Pollach
  2. Wednesday, 6 June 2018
There are no comments made yet.
  1. Monday, 4 June 2018
  2. PowerBuilder
  3. # 2
0
Votes
Undo

If windows opening is getting slower I guess the question is what process is the window doing as it opens. What have you got in the open event, is it retrieving data.

Perhaps your database performance is low due to increased data and poor indexing or fragmentation?

We need some more details, is it slow when running in the IDE against the same DB?

Regards

David

Comment
Kailai,



Not sure where you are going with that last reply.  When I hear things like "Adding to this, we have many queries which scan the entire database. Will this have an issue?" - that scares me!  Also DDDW's SHOULD be actual datawindows, not dropdown listboxes unless you're dealing with values that never change, like Yes/No, True/False, Male/Female (although even that may be changing now, lol).  It sounds like you may be in over your head on this one.  It's going to be nearly impossible for the folks here to solve this problem from the info you have posted.  I would suggest it's time for management to decide to hire some folks to come in and diagnose the problem and fix it for you.  It's probably not a good idea to have someone very inexperienced trying to solve such a problem.



 



That being said, you need to find the root cause.  Answer questions like:



1) When did you notice the change in performance?



2) What is different between before and now?



3) Who is having the problem?  All users or some?  What's different on their machines?



4) Which windows are having the problem?  Some or all?



5) Have there been any upgrades to the server or database?

  1. Kevin Ridley
  2. Monday, 4 June 2018
Hi



It does sound like you need some specialist diagnostic expertise to get to the bottom of this one for you. We could hook up with a remote session and do that work for you. PM me if you are interested.. dvp@powersoft-services.co.uk



Cheers



David

Hello Kailainathan,



Simply put a messagebox after each query retrieval the time taken (end time of query execution - start time of query execution) and fine tune the query that takes a lot of time [ or code ].



Happiness always



BKR Sivaprakash



 

  1. Sivaprakash BKR
  2. Wednesday, 6 June 2018
There are no comments made yet.
  1. Friday, 1 June 2018
  2. PowerBuilder
  3. # 3
Andres Slachevsky Accepted Answer Pending Moderation
0
Votes
Undo

Have you check the Path of the images?

in the past i did have a similar problem and the cause was the path of the images 

for example i have a button with the image abc.jpg and the image was not in the System path of the machine nor in the same path of the exe so for some reason the application start scanning all machine for the image.

i found the issue using 
https://docs.microsoft.com/en-us/sysinternals/downloads/process-explorer

 

Comment
Hi Andres,



Thanks for replying but we dont have any images in our application except for one logo.

  1. Kailainathan Kasinathan
  2. Friday, 1 June 2018
Andres, to fix the issue with the .jpg file(s) you can compile them into a pbd that way you don't have to distribute jpg's with your app.

  1. Kim Berghall
  2. Friday, 1 June 2018
There are no comments made yet.
  1. Friday, 1 June 2018
  2. PowerBuilder
  3. # 4
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.
We use cookies which are necessary for the proper functioning of our websites. We also use cookies to analyze our traffic, improve your experience and provide social media features. If you continue to use this site, you consent to our use of cookies. Learn More