I have a large file with an MV set I need to do an exploding sort
against (about 2 million records, about 20 MVs per record). I'm not
actually after any particular sort order but it's taking hours.
I'm wondering if there is any efficiency advantage by telling it to use
a primary sort on the ID or
Add the EXPLAIN keyword to your query and see what the UV query analyzer
says...sometimes useful, mostly not though ;)
Another thing to try is an SQL SELECT, that'll give you a few more grey
hairs...!
Regards
David
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED]
Hi,
are there any NFA users out there that can help me with an issue? I 'd like to
copy 10 files from our production server to our test server. The problem is
that NFA doesn't allow me to use the ECL command COPY. I don't want to run
through every file copying record by record since that will take
Just one thing to be aware of: SSELECT implies BY @ID so the BY @ID
in your statement is redundant.
To prevent sorting by @ID just use SELECT not SSELECT.
So, if you are using SSELECT then you're already sorting by @ID, so I
doubt you are going to make it any quicker by modifying your SELECT
Folks,
We have some process improvement people who are keen to reduce manual
key-boarding effort by setting up some large-scale scanner / OCR devices
and interfacing them to our UniVerse systems.
[I'd rather avoid the paper forms altogether and get XML streams from
the document originators, but
We have a product from Readsoft (www.readsoft.se) that scans invoices and
converts these into a predefined file interface.
Bjvrn Eklund
-Ursprungligt meddelande-
Fren: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] HENDERSON MIKE, MR
Skickat: den 9 augusti 2007 11:15
Till:
Stuart
Do you mean you need to explode them, but not sort them?
If so, use an SQL UNNEST keyword, e.g.
SELECT SURNAME,FORENAME,TITLE_ID,QTY,PRICE FROM UNNEST BOOK_SALES ON
SALE_ITEMS;
You can explode a field to a select list by using the TO SLIST clause, e.g.
SELECT
My first response would be try it see - and as others have pointed
out, using SELECT rather than SSELECT would have an impact BUT,
then I got to thinking sort order isn't important?
So, my question is what comes next? What are you feeding the select
into, that doesn't need information
I've been involved with scanning invoices in bulk for years with a
large law firm. We don't do any sort of OCR on them, we simply tag
them with a barcode value used to link the image with the hand keyed
record. UniVerse is simply the data repository.
My last experience with OCR type devices was
Bjvrn,
Would a simple UniObjects/VBscript do the job? It could connect to both
servers and act as a quick and dirty shuttle.
Something along the lines of :
Dim sess1,sess2
Dim HostName1,UserName1,AccountPath1,Password1,FileName1
Dim
Hi, we to use the Readsoft product. We scan and OCR 1.25 million
invoices a year. I don't know if the product is available in NZ but if
it is I would recommend it.
Les Sherlock Hewkin
Project Manager - Financial Systems
01604 592289
-Original Message-
From: [EMAIL PROTECTED]
Cool - looks interesting - I'll try that in the morning - thanks.
-Original Message-
Do you mean you need to explode them, but not sort them?
If so, use an SQL UNNEST keyword, e.g.
**
This email message and any
I did do some small sample testing and found not much difference between
the 2 methods - though on larger sets the BY.EXP seemed marginally
faster than the BY @ID BY.EXP. So barring margins of error due to
machine load I guess that answers most of my question.
The background is extracting data to
Actually, the 2 SSELECT statements are not the same:
Eg.
SSELECT BIGFILE BY @ID BY.EXP MV.ATTRIBUTE
Or
SSELECT BIGFILE BY.EXP MV.ATTRIBUTE
Adrian's correct in that BY @ID is implied when using the SSELECT but the
implication comes as a tie breaker after all the other specified sort
criteria area
The way I see it the first one will take longer than the second,
although it would have to be a large file you are selecting on. The
reason would be that the first one sorts the ID's, redundantly, twice
before it gets to the BY.EXP whereas the second one sorts by the ID only
once.
-Original
I'll be there.
-Original Message-
From: Jerry Banker
Sent: Wednesday, August 08, 2007 1:07 PM
To: u2-users@listserver.u2ug.org
Subject: [U2] U2 University
I'm going to the U2 University in Denver the last week of
this month, any others attending?
Jerry
---
u2-users
Its been a while... I (K)new it was something like that. And you're
right, it can work for one like a champ.
j
On 8/8/07, Stevenson, Charles [EMAIL PROTECTED] wrote:
Yes, except K officially stands for Keep-select-list-active, rather
than Keys.
It's a wonderful little tool. You can create
I 'd like to
copy 10 files from our production server to our test server. The problem
is
that NFA doesn't allow me to use the ECL command COPY
I've seen NFA users write their own copy utilities in UniBasic. It really
isn't any less efficient than the COPY command, since your bottleneck will
We recently got several instances of data corruption. We ended up running
for a few days on our backup machine. In the mean time we rebuilt the
production box (Firmware, AIX, UV and data restored) but still it does not
look too stable. One of my tests are to do a HASH.HELP on the invoice file
Without a doubt:
SELECT BIGFILE BY @ID BY.EXP MV.ATTRIBUTE
-
It has always frosted my shorts that in order for WHEN to kick in, you
need BY.EXP even if you don't care about the sort order.
So, Given that sorting is syntactically necessary,
and Given that you don't really care
On 8/9/07, Womack, Adrian [EMAIL PROTECTED] wrote:
Just one thing to be aware of: SSELECT implies BY @ID so the BY @ID
in your statement is redundant.
Adrian, I don't think that is correct (at least for UV). The implied BY
@ID sort is always the last sort performed, e.g. SORT MYFILE BY
UV 10.1 introduced a new configuration parameter.
Admin manual says:
UVTSORT The value of this parameter can be either 1 or 0.
A value of 1 enables multithreaded sort.
A value of 0 disables multithreaded sort.
I don't see any further discussion of it than that.
Does anyone
Boydell, Stuart wrote:
Cool - looks interesting - I'll try that in the morning - thanks.
I was curious so I did some testing. Your SSELECT is building very
large temp files in /tmp. My test had 20 MVs of 16 bytes each. I ended
up with almost 2G of temp files. If your MVs are longer (and
I have someone asking me how to use a LOCATE statement in an I
Descriptor. I have never done that and would not know if it is
possible, or what the syntax is. Does anyone know if you can do this,
and what the syntax would be to use the resultant location?
Thanks
Doug
This e-mail is for the
My first thought would be to create an I-descriptor that calls a basic
subroutine (SUBR) to do the LOCATE and return value.
Mark
-Original Message-
Subject: [U2] How to use LOCATE in an I Descriptor
I have someone asking me how to use a LOCATE statement in an I
Descriptor. I have
I believe the option is to roll your own with a catalog subr
SUBR('*YOUR.LOCATE.SUBR',VALUE,@RECORD,AM.POS,VM.POS,SVM.POS,LR.JUST)
and then create your subr to handle the parameters passed.
note: this can also come in handy since different flavors dictate starting
vm pos etc.
Rich
Doug
I think you can use INDEX or FIELD or EXTRACT. I don't know that I have ever
seen LOCATE.
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Doug Farmer
Sent: Thursday, August 09, 2007 1:44 PM
To: u2-users@listserver.u2ug.org
Cc: Vicki Gabler
Subject: [U2]
Yea - but if ANYONE knows how to avoid the SUBR it would be Trey Miller...
snicker
-Original Message-
From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Mark Eastwood
Sent: Thursday, August 09, 2007 3:18 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] How to use LOCATE
Use the LOCATE function
LOCATE (expression, dynamic.array [,field# [,value#]] ;
variable [;seq] ) {THEN statements [ELSE statements]
| ELSE statements}
Doug Farmer wrote:
I have someone asking me how to use a LOCATE statement in
There isn't a UV- or UD- or PI-supplied way.
I wrote a utility function to do that years ago, but you have to account
for the THEN vs. ELSE clause as well as returning the position number.
I did that by returning a negative number on ELSE. Then the calling
I-descriptor has to test for +/- act
We are running 10.1.21 on Linux so not exactly the same as you but we
have reported a bug in HASH.HELP for this exact failure. IBM has put it
on an ecase to be fixed. Until it is you might consider using
HASH.HELP.DETAIL which does not have this problem. HASH.HELP.DETAIL has
two pages of
Sure - but how long does it take on one of your fast new MFT drives ;-)
Colin Alfke
Calgary Canada
P.S. Give me a call when they work on 64-bit windows servers...
-Original Message-
From: Doug Dumitru
Boydell, Stuart wrote:
Cool - looks interesting - I'll try that in the morning -
Doug,
I don't believe LOCATE is supported I-types. When I have had to do this
I have had to do some hoop jumping to pull off similar functionality.
For example we have a record with two multi-valued fields...
EVENTCODE
P]B]F]R]R
And
EVENTSTATUS
A-T]B-T]FP-T]K-P]A-P
Now suppose I want the
You could probably cobble something together without a subroutine, but
it's easier just to create a basic subroutine that takes locate's inputs
and produces its output.
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Baakkonen,
Rodney A (Rod) 46K
Sent:
Doug,
The latest UniVerse U2 System Description Chapter 5 - page 5-29 lists all
the UniBasic functions that can be used directly within an I-Type.
LOCATE does not seem to be listed. You could create a small UniBasic using a
LOCATE to simulate one within an I-Type.
Cheers,
David Murray
.learn
The comment about the WHEN-BY.EXP connection was removed a few releases
back. Now, if you use WHEN it will pick off only the multi-value that
matches and the rest do not display.
__
From: Stevenson, Charles [EMAIL
[EMAIL PROTECTED] wrote:
Sure - but how long does it take on one of your fast new MFT drives ;-)
Actually, it is exactly the same speed. The temp files that UV uses to
do sorts are accessed linearly so regular arrays work just great. It is
random access and updates that kill rotating
Looks like she will use a subroutine after all. Thanks for all the
feedback
Doug
-Original Message-
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of David Murray
Sent: Thursday, August 09, 2007 3:50 PM
To: u2-users@listserver.u2ug.org
Subject: RE: [U2] How to use LOCATE
Sorry if multiple posts (connection died):
If you are using a SAN or RAID array with read ahead enabled I find it
runs REALLY REALLY faster if I turn it off. Read ahead is optimised for
large block transfers on sequential SQL SELECTs and does not mix well with
small transfers with a random
Is there an index on the MV field? If there is, this will speed up an
unconstrained sort on that field.
---
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/
Jerry: Are you sure. Please make sure that what you are saying is correct.
The SSELECT statement has traditionally sorted on the @ID last for the last
30 years. It would be news to me to learn that it sorts BY @ID automatically
first because of the double S in SSELECT.
Thus
SSELECT FILE BY CITY
UniVerse has always had the capacity to use multithreaded sort. This new
parameter gives one the ability to force sorting to use a single thread (I
guess, but don't know, for those cases where the operating system calls are not
thread safe).
Is there anything more in the what's new in this
The threaded sort this speaks of (tsort) was originally introduced into
UniVerse for DG systems back in the day. Not sure, but I believe VMark had DG
do the actual development for affinity. However, for 10.1, U2 development
looked at areas where they could improve UniVerse that would also fit
SUBR('*YOUR.LOCATE.SUBR',VALUE,@RECORD,AM.POS,VM.POS,SVM.POS,LR.JUST)
Can I ask a naive question: When using SUBR what is the point of the
preceding * before the subroutine?
Jeff Butera, Ph.D.
Administrative Systems
Hampshire College
[EMAIL PROTECTED]
413-559-5556
Daddy - did you lose your
This is so great!!
the WHEN-BY.EXP connection was removed a few releases back.
On my 10.0.16 I live under the tyranny of the old regime.
My shorts have thawed . . . Wait, now they've frosted over again:
I'm reading release notes for 10.1 10.2 and I don't see anything
about
45 matches
Mail list logo