How exactly can I use internal JBC SELECT to get a list of records, not only list of ids? When I'm doing this:
OPEN 'FBNK.CUSTOMER' TO f_enq ELSE CRT 'ERROR OPENING F.ENQUIRY' STOP END GETLIST 'ENQ-LIST' TO enq_list SETTING enq_qty ELSE SELECT f_enq TO enq_list END DISPLAY enq_list<1,5> There's a blank field here. Enq_list<1> is a single id, not a single record. W dniu piątek, 20 maja 2016 00:41:00 UTC+2 użytkownik Kevin Powick napisał: > Is this some type of backup/replication solution? If not, why are you > making copies of records between the two files? SSOT (single source of > truth) should be a goal. i.e. no duplicate records in the system. > > If after the copy process the two files actually do have identical > records, then maybe you can just copy the item IDs to the second file and > not the actual record. One file is your SSOT and the other is simply a > list of item IDs. > > It's a bit difficult to know the best approach on this without an > explanation of the system or business goals. > > Other things to consider: > > Suppress terminal output to greatly speed-up operations. > > Verify that you really need a JQL SELECT statement. Using SELECT reads > every item in the file once, then add to that every READ your program does. > > Imagine a files with 1000 records in it, and your SELECT results in 500 > records for your program to process. The result will be at least 1500 > reads (1000 for the select and 500 for your program). You could eliminate > 500 of those reads by replacing JQL SELECT with an internal JBC SELECT, > letting your program read all records in the file, and adding record > eligibility logic to your processing program. i.e. There is often no > reason to use a JQL SELECT to filter data for use in a processing program > unless record order is important. (SSELECT). > > -- > Kevin Powick > > > > On Thursday, 19 May 2016 06:00:48 UTC-4, Paweł Birgiel wrote: >> >> Hi. I have a task to make a service which will copy records from one >> table to another as fast as possible (using at most 5 agents). I have a >> problem with choosing the best way to do that. >> >> The most obvious solution seems to be using one READ and one WRITE (they >> appear to be a bit faster than F.READ and F.WIRTE) per each Y.ID in my >> main routine (after selecting list of records in SELECT routine). But it's >> still a bit slow way and I'm not sure I'm using service capabilities at one >> hundred percent. Another way is to use EXECUTE 'COPY FROM TABLE.A TO >> TABLE.B' for each record separately in main routine, but it doesn't seem to >> be faster. >> >> The most frustrating part is, when I'm using just jQL syntax in my shell >> and type something like: COPY FROM TABLE.A TO TABLE.B ALL, then sometimes >> it's even faster than my service! >> >> I was also thinking about another solution: >> >> SELECT TABLE.A WITH @ID LIKE LOC... >> COPY FROM TABLE.A TO TABLE.B >> >> This way we can copy multiple records at once. Maybe I should send larger >> chunks of id-s to the main routine of my service and then copy all of them? >> I made some tries and it doesn't seem to be much faster, sometimes it's >> even slower. >> >> Have you got any piece of advice for me? >> > -- -- IMPORTANT: T24/Globus posts are no longer accepted on this forum. To post, send email to [email protected] To unsubscribe, send email to [email protected] For more options, visit this group at http://groups.google.com/group/jBASE?hl=en --- You received this message because you are subscribed to the Google Groups "jBASE" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
