Saturday, 21 October 2017

Hints and Tips update (aka, SQL on #ibmi and #sqlserver: divided by a common language)

Decided to take a nice 'split string' table function I'd borrowed from some kind person on the internet for the Coordinate My Care data warehouse (SQL Server), and use it as a basis for a similar function to split multi-value attributes on IBM i, e.g. list of special authorities on a user profile. Cue a frustrating, if eventually successful, afternoon.

I really don't like #ibmi table functions: for starters, why can't I INSERT direct into the table to be returned, as in #sqlserver ?

However I did learn a few useful things that are worth sharing I think:

#ibmi Hints and Tips #18: create/replace table in QTEMP from SQL:
(You can then use the table absolutely normally as QTEMP.[table].)

#ibmi Hints and Tips #19: FOR var1 as cur1 CURSOR FOR [SELECT statement] DO
[whatever, using column names direct from result set]; END FOR;
(I don't know whether you can do this in SQL Server, but I am definitely going to investigate.)

#ibmi Hints and Tips #20: table function usage: esp. note the final identifier (x here):
SELECT * FROM TABLE(MyTableFunction(parm1, ...)) x
(Don't like this super complicated syntax, either!)

Tuesday, 25 July 2017

Making what you have work better: IBM DB2 for i SQL Performance Monitoring, Analysis and Tuning Workshop, IBM South Bank, 14-16 November 2017: not to be missed!

Mike Cain, of the IBM Labs, Rochester, Minnesota, a long term good friend of i-Community, will be coming to IBM South Bank on the 14th, 15th and 16th November to run his fabulous “IBM DB2 for i SQL Performance Monitoring, Analysis and Tuning Workshop”.

This workshop will ensure that those staff using SQL will understand the impact of doing it right and wrong and understand the best practice methodology for using SQL and the supporting tools to write efficient and performant code.

I attended this course myself in 2009 and cannot praise it too highly.

The agenda includes:
·       Introduction to DB2 for i Query Optimizer and Database Engine
·       Database engine methods for data access and data processing
·       Indexing and Statistics strategies
·       SQL application design and programming best practices
·       Behaviour of static SQL and dynamic SQL
·       Best practices for popular SQL interfaces, such as CLI, ODBC and JDBC
·       Parallel database processing - DB2 Symmetric Multiprocessor (SMP)
·       State of the art tools, including System i Navigator Performance Centre

If you are interested, drop me an email at and I will put you in touch with the course organisers.

Sunday, 23 April 2017

Still here and still busy!

Apologies for yet another big gap in posting. Again both work and domestic matters have got in the way, but I am looking forward to a less manic period when some of the blog posts I have in my head might make it here.

Sorry not to have followed up on the 'auction' post promised last time but I decided it might not be a public domain matter.

Saturday, 9 July 2016

Quick update July 2015 to July 2016

Apologies for the complete silence - since my last post I have been busier than I ever remember.

Highlights of the last year (well, highlights in retrospect, in some cases):

  • Fantastic trip to Brisbane (son's wedding), Sydney, and San Francisco last July (re wonderful SF public transport system with spot on approach to customer service, see right)
  • Yet another excellent i-Community Rochester trip, September
  • Successful go-live of POWER 8/IBM i V7R2/Flash storage at one of my insurance customers, November
  • Magna Carta 800th anniversary concert, November
  • Go-live of new Coordinate My Care system, also in November, after an 18-month procurement process and an 8-month implementation project (shouldn't it be the other way round?, I hear you say)
  • Demonstration of CMC 2-way interoperability proof of concept at eHealth Week at Olympia, April 2016
  • The Bath unexploded bomb (left under future school playground by Baedeker raids in 1942)

Next blog post will cover something rather alarming (broadly IT related) that my husband encountered when endeavouring to bid at an auction.

Wednesday, 25 June 2014

Calling PASE functionality from ILE #ibmi

I have recently carried out a proof of concept in this area - see this link for details and example ILE and PASE (AIX) source code. Any questions, drop me a note via my website.
UPDATE 21.10.17: the example code and PowerPoint are now on here:

Saturday, 14 September 2013

Unmissable course coming up! IBM DB2 FOR I SQL PERFORMANCE MONITORING AND TUNING WORKSHOP starting 24th September in London

If you have anything whatever to do with DB2 for i and you haven't previously attended this fantastic course, can I encourage you to consider attending? I did so myself in 2009 and have benefited greatly ever since.

Here's some more information:


This class will be taught by Jim Denton who is an experienced and highly skilled specialist from the IBM DB2 for i Centre of Excellence based in Rochester, US. Jim is one of the original authors of the SQL Performance Workshop and has been delivering this course, around the world since 2003.

Learn the information, tools and strategies for monitoring, analyzing and tuning IBM DB2 for i Structured Query Language (SQL). Explore the science and art behind the DB2 for i query optimizer and database engine, including database performance and scalability. Discuss performance issues affecting database design and data-centric applications. Get hands on experience with database performance parameters and options, as well as the various tools that assist in performance monitoring, analysis and tuning. Knowledge and skill gained by attending this course are considered critical success factors when building and deploying SQL based solutions.

More details:

Duration: 3 days
RRP: £1,700.00 per person (exc.VAT)
Date: 24th September 2013
Location: Arrow ECS London Office, Entrance 2, Fourth Floor, The Royal Exchange, London EC3V 3LN