Alpha Software Mobile Development Tools:   Alpha Anywhere    |   Alpha TransForm subscribe to our YouTube Channel  Follow Us on LinkedIn  Follow Us on Twitter  Follow Us on Facebook

Announcement

Collapse

The Alpha Software Forum Participation Guidelines

The Alpha Software Forum is a free forum created for Alpha Software Developer Community to ask for help, exchange ideas, and share solutions. Alpha Software strives to create an environment where all members of the community can feel safe to participate. In order to ensure the Alpha Software Forum is a place where all feel welcome, forum participants are expected to behave as follows:
  • Be professional in your conduct
  • Be kind to others
  • Be constructive when giving feedback
  • Be open to new ideas and suggestions
  • Stay on topic


Be sure all comments and threads you post are respectful. Posts that contain any of the following content will be considered a violation of your agreement as a member of the Alpha Software Forum Community and will be moderated:
  • Spam.
  • Vulgar language.
  • Quotes from private conversations without permission, including pricing and other sales related discussions.
  • Personal attacks, insults, or subtle put-downs.
  • Harassment, bullying, threatening, mocking, shaming, or deriding anyone.
  • Sexist, racist, homophobic, transphobic, ableist, or otherwise discriminatory jokes and language.
  • Sexually explicit or violent material, links, or language.
  • Pirated, hacked, or copyright-infringing material.
  • Encouraging of others to engage in the above behaviors.


If a thread or post is found to contain any of the content outlined above, a moderator may choose to take one of the following actions:
  • Remove the Post or Thread - the content is removed from the forum.
  • Place the User in Moderation - all posts and new threads must be approved by a moderator before they are posted.
  • Temporarily Ban the User - user is banned from forum for a period of time.
  • Permanently Ban the User - user is permanently banned from the forum.


Moderators may also rename posts and threads if they are too generic or do not property reflect the content.

Moderators may move threads if they have been posted in the incorrect forum.

Threads/Posts questioning specific moderator decisions or actions (such as "why was a user banned?") are not allowed and will be removed.

The owners of Alpha Software Corporation (Forum Owner) reserve the right to remove, edit, move, or close any thread for any reason; or ban any forum member without notice, reason, or explanation.

Community members are encouraged to click the "Report Post" icon in the lower left of a given post if they feel the post is in violation of the rules. This will alert the Moderators to take a look.

Alpha Software Corporation may amend the guidelines from time to time and may also vary the procedures it sets out where appropriate in a particular case. Your agreement to comply with the guidelines will be deemed agreement to any changes to it.



Bonus TIPS for Successful Posting

Try a Search First
It is highly recommended that a Search be done on your topic before posting, as many questions have been answered in prior posts. As with any search engine, the shorter the search term, the more "hits" will be returned, but the more specific the search term is, the greater the relevance of those "hits". Searching for "table" might well return every message on the board while "tablesum" would greatly restrict the number of messages returned.

When you do post
First, make sure you are posting your question in the correct forum. For example, if you post an issue regarding Desktop applications on the Mobile & Browser Applications board , not only will your question not be seen by the appropriate audience, it may also be removed or relocated.

The more detail you provide about your problem or question, the more likely someone is to understand your request and be able to help. A sample database with a minimum of records (and its support files, zipped together) will make it much easier to diagnose issues with your application. Screen shots of error messages are especially helpful.

When explaining how to reproduce your problem, please be as detailed as possible. Describe every step, click-by-click and keypress-by-keypress. Otherwise when others try to duplicate your problem, they may do something slightly different and end up with different results.

A note about attachments
You may only attach one file to each message. Attachment file size is limited to 2MB. If you need to include several files, you may do so by zipping them into a single archive.

If you forgot to attach your files to your post, please do NOT create a new thread. Instead, reply to your original message and attach the file there.

When attaching screen shots, it is best to attach an image file (.BMP, .JPG, .GIF, .PNG, etc.) or a zip file of several images, as opposed to a Word document containing the screen shots. Because Word documents are prone to viruses, many message board users will not open your Word file, therefore limiting their ability to help you.

Similarly, if you are uploading a zipped archive, you should simply create a .ZIP file and not a self-extracting .EXE as many users will not run your EXE file.
See more
See less

Network Optimization

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    Network Optimization

    I have a large app converted from A5V4.5 to A5V10.5. I am still wrestling with poor performance and complaints from our workstation users. By accident I had one workstation running the app non-optimized, and it seems to run much better than optimized.

    Can anyone guess why this would be?

    If I were to run all the workstations non-network optimized would I run into additional unforeseen trouble?

    #2
    Re: Network Optimization

    The benefit to network optimization is that the support files for each table and set are copied to the workstation. The dbf files containing the data remain on the server. Since the support files are local to the workstation layouts should load faster.
    There can be only one.

    Comment


      #3
      Re: Network Optimization

      Stan - Yes and in principle that is how it works - In V4.5 the network performance was terrible without optimization. Now with V10.5 I am seeing a significant slowdown in every part of the application and am finding that a non-optimized workstation is running faster. Could there be an issue in how Alpha V10x uses the "dummy" shadowed database locally and then has to go out and find the real database on the server?

      Comment


        #4
        Re: Network Optimization

        Originally posted by DORaymond View Post
        Stan - Yes and in principle that is how it works - In V4.5 the network performance was terrible without optimization. Now with V10.5 I am seeing a significant slowdown in every part of the application and am finding that a non-optimized workstation is running faster. Could there be an issue in how Alpha V10x uses the "dummy" shadowed database locally and then has to go out and find the real database on the server?
        Probably not.

        It's more likely to be code that should be changed to newer v10 code or an index that worked before is now gone or subtly works differently.

        It's always important to triage a problem to find the cause of the issue. Then the problem can be eliminated.

        debug(1) and message boxes can go a long way in the triage.
        Al Buchholz
        Bookwood Systems, LTD
        Weekly QReportBuilder Webinars Thursday 1 pm CST

        Occam's Razor - KISS
        Normalize till it hurts - De-normalize till it works.
        Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
        When we triage a problem it is much easier to read sample systems than to read a mind.
        "Make it as simple as possible, but not simpler."
        Albert Einstein

        http://www.iadn.com/images/media/iadn_member.png

        Comment


          #5
          Re: Network Optimization

          Most forms do not have any code, but they all have embedded browses. I think instead of debug(1) it is probably more like recreate from scratch.

          If I were to erase all the .cdx files associated with the app, then compact, would Alpha recreate them all from new?

          Comment


            #6
            Re: Network Optimization

            No. The cdx files are what you have created plus what Alpha adds as necessary for set linkages, etc.
            There can be only one.

            Comment


              #7
              Re: Network Optimization

              Thanks Stan.

              I was thinking of how to easily address "an index that worked before is now gone ". Compact should put the indexes back into shape, but I was thinking that physically deleting them and then having them rebuilt might be different? I suppose if I were to try this on a copy of the production app, Alpha would put back the indexes it needs to operate and I would have to rebuild the rest (?).

              Comment


                #8
                Re: Network Optimization

                It's always important to triage a problem to find the cause of the issue. Then the problem can be eliminated.
                Al Buchholz
                Bookwood Systems, LTD
                Weekly QReportBuilder Webinars Thursday 1 pm CST

                Occam's Razor - KISS
                Normalize till it hurts - De-normalize till it works.
                Advice offered and questions asked in the spirit of learning how to fish is better than someone giving you a fish.
                When we triage a problem it is much easier to read sample systems than to read a mind.
                "Make it as simple as possible, but not simpler."
                Albert Einstein

                http://www.iadn.com/images/media/iadn_member.png

                Comment


                  #9
                  Re: Network Optimization

                  I would disable any virus software you are running and test it again. Regardless of your
                  design, there's no way an optimized app should run slower than a non optimized app.
                  Test this on a single specific task before and after disabling both optimized and non optimized.

                  Comment


                    #10
                    Re: Network Optimization

                    John - We run AVG enterprise edition and it is set to not touch any of the Alpha files or data. I will disable it completly to be sure it is not having an effect.

                    Thanks.

                    Comment


                      #11
                      Re: Network Optimization

                      Originally posted by DORaymond View Post
                      <snip>I was thinking of how to easily address "an index that worked before is now gone ".</snip>
                      The only issue here is the word "easily". What some think is easy may be seen as hard to others. It all depends on what you're used to.

                      If an index is gone, there is no way for Alpha to rebuild it by itself. The only way is for you as the developer to save the index definitions in some way so you can rebuild them.

                      Some people just keep an original copy of the .cdx file. When an index "goes missing" they copy the original to the database and then rebuild the indexes so they match the current data. The "copy and update" can be done manually or via scripting.

                      I prefer to build a script that deletes the existing .cdx file(s) and rebuilds them from scratch. Alpha now has functions that will get the index definitions for you and you can work with that info to build the script.

                      In case you don't want to do it yourself ...
                      Long before Alpha created the routine to get the index definitions, I created a Create_Index_Rbld_Auto() function that retrieves the current index definitions from Alpha and builds a function in your database called Index_rebuild_auto(). Then the developer just adds a button on the Utilities menu with the 'very complicated' xbasic script of "Index_rebuild_auto()" and the user clicks that button whenever the indexes need to be rebuilt. There are also other arguments for the function so you can automatically rebuild selected indexes (perhaps before doing something critical like building invoices) or to hide the "select which indexes to rebuild" prompt, etc. I sell the addin for $19 here. The addin itself only goes on the developer's computer so the developer can run the Create_index_rbld_auto() function (typically from the Interactive Window) once the proper indexes have been created. The resulting Index_rebuild_auto() function that the user calls to rebuild the indexes will be put in the Code tab. If indexes are added, deleted, or modified during updates or bug fixes, simply re-run the Create_index_rbld_auto() function again and the old Index_rebuild_auto() function will be replaced with a new one that contains the new index definitions.

                      Comment


                        #12
                        Re: Network Optimization

                        Cal,

                        Do you think deleting and then rebuilding the index files is a better method than just compacting the database?

                        Comment


                          #13
                          Re: Network Optimization

                          Depends on what you're trying to do.

                          Compacting the database will "rebuild" indexes the same way that Alpha's internal "update indexes" routine does. It updates existing indexes only - it doesn't rebuild missing indexes.

                          Compacting also packs deleted records and "compacts" the data dictionary files.

                          I don't personally like running the Database Compact routine but only because I seldom need to do all three things at once. If you don't have an alternative, use the Database Compact. When I need to compact the data dictionaries (which should be done fairly often during development), I prefer to use the "Compact Dictionaries" routine that is in my AIMS Grab Bag because ALL it does is compact the data dictionaries and that is VERY fast relative to the time it takes to rebuild all the indexes when doing a full "Database Compact". You can build a similar routine using Dictionary.Update() or Table.compact(<dd_name>). (Or my AIMS Grab Bag is another $19 addin.)
                          NOTE - the "!Note" in the Help file under Table.Compact() is incomplete. It says nothing about the fact that the "Database Compact" routine also rebuilds indexes and removes (packs) deleted records. The Dictionary.Update() and Table.Compact() functions ONLY compact the data dictionaries - they have no effect on indexes or deleted data records.
                          Last edited by CALocklin; 10-06-2011, 05:57 PM.

                          Comment


                            #14
                            Re: Network Optimization

                            Thanks for your response.

                            Is there a time when you would want to physically delete the index and then rebuild it back as you have discussed (like with the function you built)?

                            Comment


                              #15
                              Re: Network Optimization

                              Originally posted by DORaymond View Post
                              Thanks for your response.

                              Is there a time when you would want to physically delete the index and then rebuild it back as you have discussed (like with the function you built)?
                              Whenever an index "disappears".

                              I also use it whenever indexes seem to get corrupted. In that case you could just use the "update indexes" routine but (a) my routine works just as fast so I feel it's easier to just tell users to click the same "Rebuild Indexes" button and (b) when the indexes seem to be corrupted, how can you be sure all the original index definitions are still there?

                              Comment

                              Working...
                              X