Re: A Challenge?



In message <4dd89907f5Jeremy@xxxxxxxxxxxxxxxx>
Jeremy C B Nicoll <Jeremy@xxxxxxxxxxxxxxxx> wrote:

> In article <5a3a8d84d%beamendsltd@xxxxxxxxxxxxx>,
> beamendsltd <beamendsltd@xxxxxxxxxxxxx> wrote:
> > In message <4dd73248d0Jeremy@xxxxxxxxxxxxxxxx>
> > Jeremy C B Nicoll <Jeremy@xxxxxxxxxxxxxxxx> wrote:
>
> > > But I'm interested in what causes this speed problem. !Prophet
> > > runs on - what? RPCs? Is the slow disk interface, that's the
> > > bottleneck? Or the processor itself? What's !Prophet written in?
> > > If it's BASIC, has anyone ever tried compiling it?
> > >
>
> > It's the way a document is created - it's done in memory so disk times
> > are not the issue.
>
> I thought the major complaint was the start-up time for the system to
> "load" everything into memory.

No - the delay loading was a side issue related to network user
solution.

>
> > The process seems to be: It looks at every stock item to see if it is
> > the subject of a current uncompleted invoice, quote or credit note -
> > if so it flags these. It then creates a new new invoice, or if it has
> > found an unfinished invoice for that customer, re-creates the
> > unfinished one, again checking all stock items three times.
>
> > The ability to "remember" uncompleted docs is great, but it does mean
> > 6 passes through the 16,000 item stock database - each pass taking
> > rather longer than a straightforward search for, presumably, some
> > interesting programming reason.
>
> Beats me. Unless the code doing this is amazing simplistic it
> shouldn't take all that long. What I find more interesting is why it
> needs to do that at all... If the app is single-user then it could
> have:
>
> a) loaded the database at start-up
> b) scanned everything to generate a subsidiary index of "in-use-now"
> items
> c) made itself available to the user. From then on, anything the
> user wants to do could involve checking scans of only the
> subsidiary index, which would hopefully be instantaneous. If
> the user was creating a brand-new invoice then items added to
> that would get updated in the main database and also added to
> the subsidiary index. If the app/machine crashes then next
> time it starts it buidls a new subsidiary index from the updated
> database.

My comment was that it can be a bit frustrating loading a new
invice with a customer hovering at the counter, not loading
the whole thing.

>
>
> The only reason not to design the app with some sort of index/cache
> like this would be if the author had (a) a fast machine, and (b) no
> expectation of many items in the database. But the app is old so I
> don't see how users could be expected to have (a)... The thing is,
> though, that with a single-user only, there's no way that the state of
> any item in the database can change other than by the running
> application itself doing so... and so it can cache that change and be
> certain that the cache is accurate.

An item can be on an uncomplete trade counter invoice when a counter
customer comes in, so rather than scrap the trade counter invoice
!Prophet remembers it while the new invoice is dealt with. A very neat
feature.

>
> > With 1000 stock items there is barely any delay, but it seems to get
> > exponentialy slower as the database grows.
>
> Exponentially slower is bad. Linearly slower would have been better.
>

Richard

--
www.beamends-lrspares.co.uk sales@xxxxxxxxxxxxxxxxxxxxxxx
Running a business in a Microsoft free environment - it can be done
Powered by Risc-OS - you won't get a virus from us!!
Boycott the Yorkshire Dales - No Play, No Pay
.



Relevant Pages

  • Re: Split database continued
    ... The code for creating a one off invoice takes 12 seconds with the database ... Private Sub Create_New_Invoice_Click ... Dim Invs As DAO.Recordset ...
    (microsoft.public.access.formscoding)
  • Re: Problem with a template from the MS Office website
    ... noted and have resolve them and reposted them the updated db to our web. ... database. ... I suspect it will be ages before my Access and VBA ... and controls so that the Invoice Report ...
    (microsoft.public.access.reports)
  • Re: Large Lists - Please read and comment
    ... When I explain better techniques used with C/S, ... > upsizing the database. ... I have invoice and payment transactions for over 200 different ... >>> incorrect in a number of ways such as wrong company, wrong customer, ...
    (microsoft.public.fox.programmer.exchange)
  • Re: Invoice Database
    ... Maybe what you really want is to ditch the Excel sheet and go ... Maybe you don't really need a database as such, ... Include such things as the information you need on each invoice, ... , 100 customers, a million, how many? ...
    (microsoft.public.excel)
  • Problem with record addition in subform
    ... subform (in database view) shows it with no problems (the default ... The problem is that you can't add an invoice! ... filterFunction(), so the only projects you can set an invoice to are ...
    (comp.databases.ms-access)

Loading