fhg
Volume 9, Number 1 -- January 7, 2009

Be Specific When Updating With SQL Cursors

Published: January 7, 2009

by Ted Holt

To update a table (physical file) through an SQL cursor, use the FOR UPDATE OF clause in your UPDATE command. (I have written about FOR UPDATE OF before.) When you update through an SQL cursor, avoid two mistakes that can cause a performance problem.

First, don't forget to include FOR UPDATE OF. The SQL preprocessor does not require you to include this clause, and will not generate a message to warn you of its omission. If you do not specify FOR UPDATE OF, SQL assumes that you want to update all columns (fields).

Second, list only the columns that you will update. If you list columns that you don't update, SQL will not notice the inconsistency.

The possible performance problem occurs when SQL thinks you might update a column that is used in the WHERE clause. SQL will consider using access paths to speed up the update, but it will not use an access path over an updated column. When you tell SQL which columns will be updated, SQL knows that it can use access paths over other columns.

Here's an example of a good cursor declaration. Notice the FOR UPDATE OF clause in the cursor declaration.

D CustData      e ds                  extname(CustMaster)
D ChangeCode      s              1p 0

/free                              
     exec sql                       
        declare Customer cursor for 
           select * from CustMaster
            where state = 'TX'      
              for update of chgcod;

     exec sql                       
        open Customer;              
        // insert code to check for open error
                                    
     dow '1';                       
        exec sql                    
           fetch Customer into :CustData;
        if sqlstt = '02000';        
           leave;                   
        endif;                      
        // insert code to check for fetch error

        // insert calcs to calculate new Change Code here
        // eval whatever ...
        // call whatever ...
        // etc.

        // ChangeCode now has a new value for the customer.
        
     exec sql                       
           update CustMaster set chgcod = :ChangeCode
              where current of Customer;
     enddo;                         
     exec sql                       
        close Customer;             
        // insert code to check for close error
     return;                        

SQL knows that the program will not update STATE, so it can use an index built over STATE in order to select the rows (records) for Texas customers. Without FOR UPDATE OF, it will ignore indexes and read the entire table.


RELATED STORY

Updating through an SQL Cursor



                     Post this story to del.icio.us
               Post this story to Digg
    Post this story to Slashdot


Sponsored By
WORKSRIGHT SOFTWARE

Do you need area code information?
Do you need ZIP Code information?
Do you need ZIP+4 information?
Do you need city name information?
Do you need county information?
Do you need a nearest dealer locator system?

We can HELP! We have affordable AS/400 software and data to do all of the above. Whether you need a simple city name retrieval system or a sophisticated CASS postal coding system, we have it for you!

The ZIP/CITY system is based on 5-digit ZIP Codes. You can retrieve city names, state names, county names, area codes, time zones, latitude, longitude, and more just by knowing the ZIP Code. We supply information on all the latest area code changes. A nearest dealer locator function is also included. ZIP/CITY includes software, data, monthly updates, and unlimited support. The cost is $495 per year.

PER/ZIP4 is a sophisticated CASS certified postal coding system for assigning ZIP Codes, ZIP+4, carrier route, and delivery point codes. PER/ZIP4 also provides county names and FIPS codes. PER/ZIP4 can be used interactively, in batch, and with callable programs. PER/ZIP4 includes software, data, monthly updates, and unlimited support. The cost is $3,900 for the first year, and $1,950 for renewal.

Just call us and we'll arrange for 30 days FREE use of either
ZIP/CITY or PER/ZIP4.

WorksRight Software, Inc.
Phone: 601-856-8337
Fax: 601-856-9432
E-mail: software@worksright.com
Web site: www.worksright.com


Senior Technical Editor: Ted Holt
Technical Editor: Joe Hertvik
Contributing Technical Editors: Edwin Earley, Brian Kelly, Michael Sansoterra
Publisher and Advertising Director: Jenny Thomas
Advertising Sales Representative: Kim Reed
Contact the Editors: To contact anyone on the IT Jungle Team
Go to our contacts page and send us a message.

Sponsored Links

New Generation Software:  Run IBM Query/400 from your Windows desktop!
Bug Busters Software Engineering:  High availability software that won't break the bank
COMMON:  Join us at the 2009 annual meeting and expo, April 26-30, Reno, Nevada


 

IT Jungle Store Top Book Picks

Easy Steps to Internet Programming for AS/400, iSeries, and System i: List Price, $49.95
Getting Started with PHP for i5/OS: List Price, $59.95
The System i RPG & RPG IV Tutorial and Lab Exercises: List Price, $59.95
The System i Pocket RPG & RPG IV Guide: List Price, $69.95
The iSeries Pocket Database Guide: List Price, $59.00
The iSeries Pocket Developers' Guide: List Price, $59.00
The iSeries Pocket SQL Guide: List Price, $59.00
The iSeries Pocket Query Guide: List Price, $49.00
The iSeries Pocket WebFacing Primer: List Price, $39.00
Migrating to WebSphere Express for iSeries: List Price, $49.00
iSeries Express Web Implementer's Guide: List Price, $59.00
Getting Started with WebSphere Development Studio for iSeries: List Price, $79.95
Getting Started With WebSphere Development Studio Client for iSeries: List Price, $89.00
Getting Started with WebSphere Express for iSeries: List Price, $49.00
WebFacing Application Design and Development Guide: List Price, $55.00
Can the AS/400 Survive IBM?: List Price, $49.00
The All-Everything Machine: List Price, $29.95
Chip Wars: List Price, $29.95


 
The Four Hundred
Now What?

IT Doing Better Than Other Careers in 2009

Strengthening Dollar Whacks Oracle's Second Fiscal Quarter

As I See It: The Rhythm of Things Unseen

Uncle Sam to Stop Buying Used IT Gear?

Four Hundred Stuff
Safestone Gives i Security Officers Greater Control

SPSS to Update ShowCase OLAP Server Technology

Rand McNally Keeps Truckers On the Go and In the Know

The Who's and What's of ESBs and eSBs

Mohawk Slashes Report Delivery Times, Thanks to Centerfield

Four Hundred Monitor
Four Hundred Monitor's
Full iSeries Events Calendar

System i PTF Guide
December 27, 2008: Volume 10, Number 52

December 20, 2008: Volume 10, Number 51

December 13, 2008: Volume 10, Number 50

December 6, 2008: Volume 10, Number 49

November 29, 2008: Volume 10, Number 48

November 22, 2008: Volume 10, Number 47

TPM at The Register
VCs still pump dough into green tech, renewable energy

Companies burying themselves in IT gear

Linux: this year's silver lining?

Server racket to slow in 2009?

Big Blue urged to open Notes and Domino

Data center budgets to stay course in 2009?

New Unisys CEO tightens the belt

Sun boosts OpenSolaris on Atom

VMware piles up next virtual stack for servers

Supermicro does micro server for SOHOs

Red Hat shakes off economic meltdown

UBS says IT spending in Europe, US to drop 2 per cent in 2009

Visionman launches Nehalem Core i7 servers

American IT staffing will not tank in Q1

THIS ISSUE SPONSORED BY:

Help/Systems
WorksRight Software
MKS


Printer Friendly Version


TABLE OF CONTENTS
Bypassing a Locked Record, Take Two

Be Specific When Updating With SQL Cursors

Admin Alert: Looking for i5/OS Trouble, Part I

Four Hundred Guru

BACK ISSUES

From the IT Jungle Forums
Insert via Java

iSeries Access for Web

Mimix installation and configuration docs

EDI Inovis Programmer - Heavy Duty Problem Solver - Anytime

Data Queues vs. MQ Series: Performance

Removing blanks from a CL Variable

XML




 
Subscription Information:
You can unsubscribe, change your email address, or sign up for any of IT Jungle's free e-newsletters through our Web site at http://www.itjungle.com/sub/subscribe.html.

Copyright © 1996-2009 Guild Companies, Inc. All Rights Reserved.
Guild Companies, Inc., 50 Park Terrace East, Suite 8F, New York, NY 10034

Privacy Statement