Re: [U2] General guidelines on indexing

2009-07-08 Thread Womack, Adrian
I just tried this example on Universe 10.2.6 - it took 0.0665 seconds - basically instant, can't complain about that. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips Sent: Thursday, 9 July 2009 12:5

[U2] General guidelines on indexing - Wiki updated

2009-07-08 Thread bradley . schrag
I took a stab at extracting and compiling index-related info from this thread. It's not pretty, but it's a start. Feel very free to update, restructure or change as seems appropriate. http://212.241.202.162/U2UGWiki/moin.cgi/ForDevelopers Brad. U.S. BANCORP made the following annotations -

Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips
Hi Symeon, Ha Ha a dev from IBM letting secrets out to ladybridge ;) Yes, it was a bit much to hope!!! Martin Phillips Ladybridge Systems Ltd 17b Coldstream Lane, Hardingstone, Northampton, NN4 6DB +44-(0)1604-709200 ___ U2-Users mailing list U2-U

Re: [U2] General guidelines on indexing

2009-07-08 Thread Symeon Breen
Ha Ha a dev from IBM letting secrets out to ladybridge ;) -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of Martin Phillips Sent: 08 July 2009 20:57 To: U2 Users List Subject: Re: [U2] General guidelines on indexing H

Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips
Hi again Ed, SELECT file WITH PRINT.DATE GT "01/04/2008" AND WITH ADDR LIKE "'A'0X" This query can be resolved with an index. Also, the optimiser will shuffle the clauses to make best use of indices. Unidata had query optimisation before UniVerse but I believe that essentially the same algor

Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips
Hi Ed, Your test program on unidata 7.1 takes 1137 milliseconds - 1.1 seconds. Whilst this is not a totally valid comparison since your test was done on different hardware (mine was on my laptop), it does show that Unidata almost certainly cannot be using contiguous strings as it would take

Re: [U2] General guidelines on indexing

2009-07-08 Thread Brian Leach
All Since we're already going off on a huge tangent re. indexing, it's worth pointing out that if you're writing client side code in .Net the same applies: strings are immutable and every change or append copies the string in memory. That's why there is a StringBuilder class for appending to strin

Re: [U2] General guidelines on indexing

2009-07-08 Thread Edward Brown
I want to move to one of my earlier questions in this thread regarding mixing indexed and non-indexed dictionary items, and if unidata is able to use the indexed items at all in this circumstance: Simple test: One fairly big file: Items - 473,000 Item size - 695 bytes on average Indexed dictiona

Re: [U2] General guidelines on indexing

2009-07-08 Thread Edward Brown
Martin Your test program on unidata 7.1 takes 1137 milliseconds - 1.1 seconds. I changed it to use system(12), this is a better resolution clock on unidata than TIME(). Interesting commentary on chunking. I believe (and I might be talking out of my ar*e here) that chunking done with (system memo

Re: [U2] General guidelines on indexing

2009-07-08 Thread Martin Phillips
Hi all, I don't agree. Disk access is inherently slower than RAM access. I think that this discussion started for Unidata and then got UniVerse involved too but it might have been the other way around. Sadly, there is no internals training material for Unidata so we have to guess what goes o

Re: [U2] General guidelines on indexing

2009-07-08 Thread bradley . schrag
Excellent idea, Baker. I'll work on that after this thread settles down. I won't include the "dynamic array vs. work file" bits since that's not directly related to indexing. Brad Schrag > > Maybe one of you would be willing to pull all these good posts on > indexing into a wiki article? It

Re: [U2] General guidelines on indexing

2009-07-08 Thread jpb-u2ug
It's been a long time since I've been in hardware so I may be all off on this, but, this could be possible because after it sends the WRITESEQ it's basically up to the disk subsystem to actually do the writing. The written sequential record get's put in the queue and the subsystem sends back a sign

Re: [U2] Calculation on multi-valued elements

2009-07-08 Thread David Ward
Kathleene, Is this what you were referring to below? We also tried this approach with no luck. The vector functions did work for us. If I set this up wrong, please feel free to correct me :-) Thanks! ASSOC 0001 PH 0002 ST FT DEW ST 0001 D 0002 2 0003 0004 Start 0005 8R 0006 M 0007 A

Re: [U2] General guidelines on indexing

2009-07-08 Thread Edward Brown
Marco Manyevere wrote: > In one test I did a couple of months back, I found that appending IDs to the end of a dynamic array perfomed _much_ _much_ slower than a WRITESEQ to the end of a disk file and the dynamic array wasnt even a 100 000 records long. We were able to reduce the time required to p

[U2] UniData ODBC error: join: write error (#0)

2009-07-08 Thread Amy Cook
Anyone ever seen this one before? I'm assuming it's a data error, because this query's been working for 2 years (it's just a query, no updating being done) ___ U2-Users mailing list U2-Users@listserver.u2ug.org http://listserver.u2ug.org/mailman/lis

Re: [U2] General guidelines on indexing

2009-07-08 Thread Robert Porter
Sorry yes, I was speaking of UV. There the data for the index is stored in I_(filename) by default. But inside the header of the actual file, there is a pointer to where the indexes live. So the indexes could live somewhere else by using the SET.INDEX command, if you wanted to move them for per

Re: [U2] Calculation on multi-valued elements

2009-07-08 Thread Kathleene M Hunter
Create an association dictionary and place that on the dictionary items for @record<2> and @record<3> and RUN_TIME -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of David Ward Sent: Tuesday, July 07, 2009 1:27 PM To: 'U

Re: [U2] General guidelines on indexing

2009-07-08 Thread Marco Manyevere
In one test I did a couple of months back, I found that appending IDs to the end of a dynamic array perfomed _much_ _much_ slower than a WRITESEQ to the end of a disk file and the dynamic array wasnt even a 100 000 records long. We were able to reduce the time required to produce a report from

Re: [U2] General guidelines on indexing

2009-07-08 Thread Steve Romanow
Robert Porter wrote: Just a quick note on indexes... and kind of goes to the EMC question. The location of the index is stored in header of the file itself! This can lead to a problem if you have a copy of the data somewhere else and try to use it. For example, we'll occasionally want to see

Re: [U2] General guidelines on indexing

2009-07-08 Thread Baakkonen, Rodney A (Rod) 46K
In theory, I would have to agree with you. Who knows how all this stuff really works under the hood. You have Unidata Shared memory management and shared basic code server. We also have a huge SAN with a lots of cache. Measuring performance and impacting it is different these days. There are so ma

Re: [U2] General guidelines on indexing

2009-07-08 Thread Baker Hughes
Maybe one of you would be willing to pull all these good posts on indexing into a wiki article? It would be handy reference material and could save someone from hours of pain can't get this stuff from reading the system docs. http://212.241.202.162/U2UGWiki/moin.cgi/ForDevelopers -Baker

Re: [U2] General guidelines on indexing

2009-07-08 Thread Robert Porter
Just a quick note on indexes... and kind of goes to the EMC question. The location of the index is stored in header of the file itself! This can lead to a problem if you have a copy of the data somewhere else and try to use it. For example, we'll occasionally want to see how a file/record look

Re: [U2] General guidelines on indexing

2009-07-08 Thread Steve Romanow
Edward Brown wrote: I don't agree. Disk access is inherently slower than RAM access. Therefore a process that makes efficient use of RAM will be faster than an equivalent algorithm making efficient use of disk. In your case, it's just a matter of scale: 50 million records at (lets say) 14 bytes

Re: [U2] General guidelines on indexing

2009-07-08 Thread Edward Brown
I don't agree. Disk access is inherently slower than RAM access. Therefore a process that makes efficient use of RAM will be faster than an equivalent algorithm making efficient use of disk. In your case, it's just a matter of scale: 50 million records at (lets say) 14 bytes per ID plus the multi

Re: [U2] General guidelines on indexing

2009-07-08 Thread Baakkonen, Rodney A (Rod) 46K
When you have a file with 50 million records, it does not matter how you build the or parse the dynamic array. A well sized work file will run circles around the dynamic array. -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org]

Re: [U2] General guidelines on indexing

2009-07-08 Thread Edward Brown
> After indexing, we made a lot more use of the SETINDEX and READFWD logic in our programs. I find this curious / disappointing - is it really the case that unidata can't take the mix of indexed / unindexed dictionary items and do just as efficient a job as the code you're writing? Also, the per

Re: [U2] General guidelines on indexing

2009-07-08 Thread Baakkonen, Rodney A (Rod) 46K
We are on Unidata 7.1 on Sun Solaris We have used indexing extensively in our database. We have one file with 10 indexes. The file is currently using around 80 gig. (35 dat, 9 idx and 1 Over parts files). I am not sure how to weigh the update performance difference these indexes make. But we feel

Re: [U2] General guidelines on indexing

2009-07-08 Thread Steve Romanow
Be careful not to index on a foreign key, i.e. do not index a field that is a tlookup or trans to another file. An example is if custno is on the order header,and you xlate it to order.line, do not index order.line by custno. It will not update properly. U2 indexing is such a breath of fre

Re: [U2] General guidelines on indexing

2009-07-08 Thread asvin . dattani
Hi, A general point on indexes. You should be careful in choosing the data that you index on. Indexing on a data field where a substantial number of records in the file have the same value in that field can cause performance problems. An extreme example is a field that can contain Y or N. But

Re: [U2] General guidelines on indexing

2009-07-08 Thread Edward Brown
We've recently implemented indexing into our application as a replacement for our own custom indexes, so I'm at least a little bit qualified to answer some of your questions: * Number of indexes - no guidelines afaik. The update process seems fast enough - certainly, every write triggers an index

Re: [U2] Simple Export to Excel

2009-07-08 Thread Symeon Breen
The ! was just part of the data The standard is here http://tools.ietf.org/html/rfc4180 -Original Message- From: u2-users-boun...@listserver.u2ug.org [mailto:u2-users-boun...@listserver.u2ug.org] On Behalf Of charles_shaf...@ntn-bower.com Sent: 07 July 2009 20:03 To: U2 Users List Subje