A SMARTer DB2
A SMARTer DB2
IBM puts DB2 on a path toward self maintenance that promises to help DBAs stay on top of their workloads.
By Sam S. Lightstone, Guy M. Lohman, Bryan F. Smith, Randy Horman, and Jim Teng
Quarter 4, 2002

Printer-Friendly Version
Email this Story
Bookmark to del.ico.us
Digg It!

Wouldn't it be nice if your database were as easy to manage as your refrigerator, automatically regulating its operation based on the settings of a couple of knobs and initiating maintenance operations that would periodically "defrost" your data without your intervention? That's the goal of the Self-Managing And Resource Tuning (SMART) project at IBM: to reduce the cost of tuning and managing DB2 Universal Database (UDB).

Despite the dramatic recent growth in database sizes, total cost of ownership (TCO) is increasingly dominated by human costs. Thanks to Moore's Law and fierce competition, the per-unit cost of hardware and software continues to drop. But skilled application developers and DBAs are increasingly rare and expensive. A 1998 study by the Aberdeen Group showed that a five-year, 25-user implementation of a leading industrial RDBMS incurred 81 percent of its TCO from the human costs of training, maintenance, and implementation. Last year, a TCO report from D.H. Brown Associates that compared two leading database products for both data warehouse and online transaction processing (OLTP) applications found that human costs represented a large component of TCO in all cases.

Advances in database functionality and burgeoning requirements for database size, connectivity, availability, and heterogeneity increase the administrative burden. Data warehouses containing tens of terabytes of data aren't uncommon. Popular applications such as SAP typically create more than 20,000 tables and support thousands of users simultaneously. System designers grapple with complex decisions about hardware platforms, schema design, constraints and referential integrity, primary key and indexes, materialized views, the allocation of tables to disks, and shared-nothing, shared-everything, or SMP-cluster topology. Once designed, databases require substantial human input to build, configure, test, tune, and operate. DBAs handle table reorganization, data statistics collection, backup control, security modeling and administration, disaster recovery planning, configuration and performance tuning, problem analysis, and more.

Resources

DB2 for z/OS and OS/390
ibm.com/software/ data/db2/os390

DB2 for Linux, Unix, and Windows
ibm.com/software/ data/db2/udb

DB2 Data Management Tools
ibm.com/software/ data/db2imstools

And these pressures extend beyond databases to all IT departments. The complexity of modern hardware and software systems and a growing shortage of IT professionals threaten the growth of the IT industry, much as a shortage of human telephone operators threatened the growth of the telephone network before electronic switching for automated telephone calls.

IBM director of research Paul Horn last year issued a manifesto on autonomic computing to spur research and development of hardware and software systems that are more self-managing, self-configuring, self-healing, self-optimizing, and self-protecting. The term "autonomic" derives from the nervous system in the human body, which regulates heartbeat and breathing, heals wounds, processes food, and performs other essential functions automatically. Horn wrote, "Autonomic systems must anticipate needs and allow users to concentrate on what they want to accomplish rather than figuring how to rig the computing systems to get them there."

The DB2 SMART project is just one of many autonomic computing projects underway at IBM. Others include a similar SMART project for WebSphere and the eLiza project for IBM servers. Earlier this year, IBM named a vice president for autonomic computing (Alan Ganek) to foster and coordinate the autonomic computing initiatives.

DBAs IN A SMART WORLD

The DB2 SMART project aims to create technology for reducing human intervention and cost in DB2 operation. It builds on and extends existing self-managing technologies in DB2 and will result in a DB2 that can:

  • Adjust every configuration parameter dynamically while the system is in use
  • Expand and shrink memory usage, based on workload
  • Automatically profile workloads and recommend and create indexes, partitioning, clustering, summary tables, and so on to improve performance
  • Automatically detect the need for, estimate the duration of, and schedule maintenance operations such as reorganization, statistics collection, backup, copy, and rebind
  • Observe actual performance and exploit that information to improve operations
  • Recommend action when the performance isn't meeting the DBA's expectations
  • Predict problems such as low memory or constrained disk space and notify someone by page or email in advance.

Will these developments mean the demise of the DBA? No. But they will mean the end of repetitive administrative tasks, freeing DBAs to spend more time on new applications and less time putting out fires. And DBAs will have the opportunity to evaluate and select recommendations before they're implemented. Once comfortable with system recommendations, DBAs can enable DB2 to take actions automatically and simply report on them.

When will DB2 manage itself? There's not a single feature or function that will make DB2 autonomic. Instead, IBM is developing new technologies that will be delivered across several releases. In the near term, you'll see infrastructure features that enable more autonomic behavior, wizards that guide your choices, and advisors that evaluate possibilities. But the SMART project won't end until autonomic awareness is as pervasive in the design process as performance and usability now are.

The SMART project involves two IBM research centers, two IBM development laboratories, and IBM's Centre for Advanced Studies, a collaboration of academic, government, and corporate research and development institutions. It also crosses platforms, with initial focus on z/OS and Linux, Unix, and Windows. In general, IBM intends to eventually support the same capabilities on all platforms.

DB2'S AUTONOMIC FEATURES

Although DB2 isn't yet as easy to manage as a refrigerator, it already sports several autonomic features. We'll first review some of the existing features across DB2 for z/OS and OS/390 and for Linux, Unix, and Windows.

Query Optimizer. The DB2 Query Optimizer automatically determines the best way to execute a declarative SQL query. It uses a combination of powerful query rewrite rules that transform queries written by the user (or a query generator) into standardized, easier-to-optimize queries and a detailed cost model that generates and evaluates a rich set of alternative plans for executing the query. The optimizer automatically determines whether any existing automatic summary tables (ASTs), also called materialized views, could benefit a query. If so, the optimizer routes the query to use the AST without altering the query in the user's application program. It uses statistics on the size of each table and the distribution of each column to model how many rows must be processed by any query a user might submit. It even adapts its cost model to the machine environment in which it's operating, automatically factoring in the speed of the CPU, the storage devices, and the network connecting machine clusters (in a shared-nothing environment) or sites (in a federated environment). The Query Optimizer in DB2 for the Linux, Unix, and Windows platforms even has a meta-optimizer that uses heuristic rules to automatically determine when a query is too complex to enumerate the possible join orders using dynamic programming. When this occurs, the optimizer instead chooses the cheapest join at each iteration in a "greedy" algorithm that saves on optimization time and space.

Automatic selection of degree of parallelism. In multi-CPU platforms, query optimization includes automatically setting and adjusting the degree of parallelism (the number of distinct tasks needed to perform an operation) for queries and utilities. For any query, DB2 analyzes how tables are accessed and where the bottlenecks exist and selects the optimal degree of parallelism at run time without external input. Complex queries benefit from intraquery parallel processing, and simple queries get to bypass the overhead (in context switching and communication costs) of the parallel processing infrastructure. Determining the optimal degree of parallelism for each query as it executes removes the need for complex load balancing during compilation.

The DB2 load utilities exploit a series of concurrent (parallel) subtasks for data prefetching, formatting, and writing to disk storage. Taking stock of the table's characteristics and the number of CPUs, the utility automatically determines the memory needed for buffering and sorting and the number of subagents necessary to achieve optimal I/O and SMP parallelism.

Detection of partial disk writes. DB2 uses a patented technique to protect data integrity by automatically detecting any corrupted data from incomplete I/Os when it reads a page from disk. The method exploits consistency bits to verify that a page being read into the buffer pool from the disk is not a partial page or hasn't been corrupted. When the page is read in, DB2 verifies that all of the bits are the same. If some of the bits are different, DB2 indicates a partial page write or disk corruption.

Application control and tuning. The most important aspects of application control are controlling application use and maximizing resources. DB2 provides mechanisms for controlling applications that are submitted for execution and those that are currently executing, based on the resources they consume. The first type of control is called a "predictive governor" because it uses the Query Optimizer's estimate of the relative resources each query is expected to consume to limit surges of arriving or long-running queries that could saturate the server. The second type is called a "reactive governor" because it monitors the actual resources consumed to prevent runaway queries from wasting resources. Examples include queries that have run too long, read or modified too many pages, or consumed too many locks without performing a COMMIT . Both types of governor provide an effective way to protect your system from errant applications that could starve currently executing queries for resources and increase system thrashing.

On the z/OS platform, the Resource Limit Facility (RLF) encompasses both predictive and reactive governors. The z/OS Workload Manager also balances the incoming workload across the Parallel Sysplex by offering applications connecting to DB2 the ability to run on the least-used DB2 member.

On the Linux, Unix, and Windows platforms, the DB2 Query Patroller provides the predictive governor; the reactive governor is called simply "the Governor." Guided by policies that a DBA establishes for each user, Query Patroller uses the current system load and the optimizer's estimate for each incoming query to prioritize and schedule its execution. Completion of a query's execution can optionally trigger automatic user notification by mail or with entries in a Job Accounting table to permit tracking the history of database usage. The Governor is controlled by a configuration file containing rules for limiting the resources consumed by specific applications or users, such as CPU time, running time, reads or writes, or locks acquired. Possible rule actions include increasing or decreasing the priority of the application or forcing it off the system.

Performance Expert. The new DB2 Performance Expert provides passive monitoring and also collects trace and monitor data in a performance data warehouse. This captured data can be queried by the DBA. A collection of reports can be run against the historical data (with correlation of system changes, such as increasing storage) to flag warnings and give advice. The Buffer Pool Analyzer, another Performance Expert component, collects buffer pool activity data and models changes to the objects in the buffer pools (including sizes) so a DBA can see the effects without having to make the changes to the production system. Other tools from the IBM Data Management Tools group offer the ability to capture and analyze performance data and make recommendations for queries. See Resources for more information.

DB2 FOR LINUX, UNIX, AND WINDOWS

A few existing features are specific to each platform. We'll start with those features specific to the distributed platforms.

Index Wizard. The DB2 Index Wizard, introduced with version 6 in 1999, aids physical database design by recommending indexes for tables, based on a workload of one or more SQL queries (including INSERT s, UPDATE s, and DELETE s) that may be automatically captured or supplied by the user. The Index Wizard exploits the Query Optimizer's detailed performance model and suggests and evaluates the most promising candidate indexes, improving search efficiency. Using the Query Optimizer code itself saves maintaining redundant external code and ensures that the optimizer will actually choose the recommended indexes for the workload. The Index Wizard is a utility running as a client application that invokes the DB2 compiler in two new EXPLAIN modes: RECOMMEND INDEXES and EVALUATE INDEXES . In RECOMMEND INDEXES mode, the optimizer creates "virtual index" descriptors for various combinations of columns that can apply predicates, create "interesting" orders (for ORDER BY , GROUP BY , or joins), or provide index-only access for the given query. It then derives statistics for these virtual indexes and goes through the normal process of query optimization to pick the best plan using virtual as well as real indexes. If the plan chosen references a virtual index, then it's reported as a candidate index to the client utility for consideration in the EVALUATE INDEXES mode. The Index Wizard recommends indexes to create, estimates their storage size and the performance impact on each query in the specified workload, and identifies indexes that are no longer needed.

You can use the Index Wizard to recommend or affirm indexes on DB2 for the z/OS platform if you capture a workload on z/OS and create a modeling database on Linux, Unix, or Windows. The same technology recommends indexes that you can then create on the z/OS platform. For more information, see Resources .

Service Utility (db2support). To simplify the process of data collection and problem determination in service situations, DB2 includes a utility named "db2support" that automatically determines what diagnostic information IBM Service would need, then collects and packages that information into a single zip file. The file includes hardware characteristics (including CPUs, network, and storage specification), operating system and database product levels and configuration, and a number of database diagnostic files and control structures. The system description data is stored in HTML format for convenient browsing. Additionally, db2support provides an optional interactive mode in which the user is guided through a decision tree of specific questions about the problem scenario. The resulting dialog between the utility and the human operator is captured in an XML file. All of this information is collected into a single file and compressed for efficient transmission. By automatically collecting and capturing a comprehensive set of system information, this utility simplifies product support and reduces the resolution time.

Performance Configuration Wizard. The Performance Configuration Wizard automatically determines the best values for more than 35 configuration parameters critical to system performance, including the allocation of system memory for major database operations (such as data caching, sorting, and networking) and operational parameters (such as the number of database server agents, I/O subagents, and logging frequency). To do so, it evaluates the setting of each configuration parameter based on characteristics of the database system that it senses automatically (including system RAM, number of storage disks, and number of CPUs) and characteristics of the workload specified by the caller in response to a handful of simple questions. The user questions assume the lowest skill level. The Performance Configuration Wizard derives the value of each configuration parameter as a weighted function of each system characteristic. However, the allocation of system memory to the database consumers (data cache, sort, network memory, and so on) must be treated as a zero-sum game. These parameters are determined in a combined model that takes account of each memory consumer's constraints, based on the database architecture and the system memory available.

You can invoke the wizard through either a graphical interface or a programmable API. A number of commercial database applications that use DB2 for their relational stores invoke this advisor through the programmable API.

Z/OS TODAY

Now let's look at some of the existing autonomic features of DB2 on the z/OS platform, by category.

System monitoring and control. With each new release of DB2, there are new switches and knobs referred to as system parameters or ZPARM s. In v.7, most of these parameters can be changed online. From this feature, many other autonomic features can be developed because these parameters can be changed without application outage. Version 7 also introduced Real Time Statistics. Complementary to RUNSTATS data, these statistics keep track of the number of INSERT s, UPDATE s, and DELETE s since the last REORG or RUNSTATS . DB2 also tracks the number and percentage of changed pages. You can use these statistics to determine whether to perform a REORG , RUNSTATS , or COPY utility.

DB2 on the z/OS platform has the luxury of the z/OS Workload Manager. The Workload Manager provides goal-based performance management at the operating system level, which allows mixed workloads to share resources and prevents long-running work (such as some queries or utilities) from affecting the performance of short-running work. This is accomplished by using period aging techniques to "throttle" the longer-running work.

Other system management features in DB2 for z/OS include automatic sort technique selection, automatic storage pool contraction in the main DB2 address space, and adaptive buffer management. Adaptive buffer management includes techniques such as dynamically enabling or disabling prefetch operations based on the current characteristics of the access path and changing prefetch quantities on the fly.

Operational maintenance and recovery. Along with RUNSTATS and COPY , the REORG utility can run concurrently with applications that update the objects being reorganized. This ability applies to tablespaces as well as indexes. To help enable automated operations, both the COPY and REORG utilities permit you to specify a criterion that controls that utility's behavior. For example, you may want to skip taking an image copy of a tablespace or index if less than 2 percent of the pages have been updated. And, you may want to take an incremental copy if less than 15 percent but more than 2 percent of pages have been changed. If more than 15 percent of the pages have been updated, you may want to take a full image copy. These thresholds are parameters specified on the utility invocation. Similarly, you can provide criteria for a REORG utility.

During a recovery operation, if an image copy is determined to be corrupt, DB2 will automatically fall back to a different image copy. If it detects a broken or corrupt page, DB2 starts a recovery process to fix this condition automatically. In a Parallel Sysplex, if a Coupling Facility fails for any reason, the system automatically switches over to a different Coupling Facility, with no outage to the application.

Many z/OS DBAs use the DB2 Automation Tool for detecting exception conditions and automatically generating utility jobs that can be scheduled. (For more information about how customers use this tool, see the online only article "Tool Tales: Customers Report From the Field" .

Latest Developments

The latest round of new DB2 tools and DB2 UDB v.8.1 for Linux, Unix, and Windows bear the early fruit of the DB2 SMART project's efforts. We'll talk about a sample of these new features.

Recovery Expert. Announced earlier this year, the DB2 Recovery Expert combines log analysis, filtered log subset creation, and an object definition version repository to enable the user to specify recovery goals. This tool analyzes the recovery assets available and recommends a technique to be selected. For example, if a set of tables needs to be recovered to a point in time five minutes ago, Recovery Expert may recommend that the log be analyzed in order to generate UNDO SQL to effect the recovery. While this product was announced only on DB2 for the Linux, Unix, and Windows platforms, many of its components are available today as separate products on z/OS: DB2 Log Analysis Tool, DB2 Change Accumulation Tool, and DB2 Object Restore Tool.

Maintenance Advisor. The Maintenance Advisor is a cross-platform tool that examines DB2 statistics (real-time statistics on z/OS) and makes recommendations on what maintenance utilities should be run. It can build scripts or JCL and can schedule maintenance tasks. Maintenance Advisor includes a GUI tool and a stored procedure API and command-line interface.

SMART IN DB2 v.8.1

DB2 UDB v. 8.1 for the Linux, Unix, and Windows platforms contains a number of new, SMART features. Here's a sample of the major ones.

Configuration Advisor. The Performance Configuration Wizard underwent a significant refinement and emerged as the Configuration Advisor. Recent experiments with the new algorithms have produced dramatic improvements, particularly for OLTP and batch database systems. Figure 1 shows the results of two experiments using an industry standard OLTP benchmark. The experiments were performed on two different workloads. For each workload, the system throughput was measured using the default out-of-the-box settings, the settings recommended by the new Configuration Advisor, and the settings determined by a human expert who was given period of several days to tune the database configuration. For both workloads, the Configuration Advisor's settings outperformed the default settings by several factors. Even more surprising, the Configuration Advisor achieved 91.3 percent of the throughput performance achieved by the human expert for the first workload and 98.4 percent for the second workload.

Figure 1 : Comparing the system throughput performance of Configuration Advisor settings to default and expert human settings.

Autonomic health assessment. Early in the SMART project, a survey of DBAs revealed that a common challenge is easily assessing whether DB2 is firing on all cylinders and determining the best remedy if it isn't. The SMART answer to this is a new facility called the Health Monitor, which consists of a monitor agent that runs unattended and within the database engine, and several tools for obtaining health status, resolution recommendations, and monitor configuration. The Health Monitor looks for signs of unhealthiness within the database and issues health alerts via email messages, pages, or records written to the notification log. It can also run corrective scripts or tasks when health alerts are issued. The supporting tools (used to view real-time and historical health alerts, display and enable optional execution of suggested resolution actions, and support configuration changes) are the Health Center GUI application (desktop and Web versions), command line processor commands, and "C" APIs. The Health Monitor covers such aspects of database health as storage usage, memory consumption for caching and sorting, logging behavior, and application concurrency.

COMING SOON

These recently announced autonomic features in DB2 are only the beginning of a stream of autonomic technology that will be added by the SMART team over the next releases of DB2, beginning with key infrastructure capabilities and tools that remove the drudgery from DBA tasks and evolving to more sophisticated tools that will take DB2 to the next level of system automation and self-control. Although we can't provide a full description of current research projects, this subset of projects provides some interesting insight into DB2's future capabilities.

Design Advisor. As we noted earlier, the Index Wizard only recommends indexes to create or drop. But selecting indexes is only one of the many physical database design decisions that DBAs make. Redundantly materializing the results of aggregation queries in ASTs can significantly improve the performance of queries, but can also consume disk space and require updates when the tables from which they are derived are updated. In v. 8.1 of DB2 UDB for Linux, Unix, and Windows, ASTs have been extended to include nonaggregating queries and renamed materialized query tables (MQTs) to more accurately reflect this wider role. This same functionality is expected soon for the z/OS platform.

Judiciously choosing which MQTs to define provides yet another challenge to even knowledgeable DBAs. And MQTs, as stored tables themselves, require indexes to perform well, too. Furthermore, in a partitioned environment, these MQTs (and all base tables) must be optimally partitioned among the nodes to minimize the repartitioning needed by queries performing joins, aggregates, and so on. These design decisions interact in ways that are hard for even seasoned experts to predict.

The Index Wizard on the Linux, Unix, and Windows platforms will be expanded to augment its recommendation of indexes with recommendations of the best MQTs and partitioning for each stored table. To better reflect this broader role, its name has been changed to the Design Advisor. As before, the Design Advisor will exploit the DB2 Query Optimizer's detailed cost model to recommend the best candidates for each query and evaluate global solutions efficiently. The new MQT component will exploit new multiquery optimization to find MQTs that can benefit many queries, rather than simply precomputing a few key queries. It will also optionally use sampling of the contents of selected candidate MQTs to better estimate their ultimate size. The new partitioning component will exploit the interesting partitions already computed by the Query Optimizer for each query, generating alternative plans for each such partition and then letting the Query Optimizer choose the preferred plan. It will then evaluate all queries in the workload using just one of these candidate partitions for each table, to find the best global solution.

Online schema changes (schema evolution). One of the key pieces of autonomic infrastructure in DB2 for z/OS, this feature will enable you to change almost any schema aspect without incurring an outage or invalidating packages or views. Why is this important? Successful applications aren't static. Tables are modified, columns are dropped from tables and indexes, data types for columns are changed, indexes need to be renamed, partitions need to be added, and so on. These changes must be made online. In some cases, multiple changes need to be made before a REORG utility can fix all of the objects to a single version of the schema.

Utility enhancements. Also on DB2 for z/OS, look for online enhancements to utilities such as LOAD RESUME and the capability to build indexes while allowing full online SQL access. A statistics advisor will tell you if you should collect column statistics or nonuniform distribution data on nonindexed columns, as is done on DB2 for the Linux, Unix, and Windows platforms. (Currently, RUNSTATS on DB2 for z/OS only collects these statistics on indexed columns.) Have you ever wanted to take a partitioned table and adjust the partition range keys so that all of the partitions were more equally balanced? Well, look for a rebalance partitions extension to the REORG utility.

Managed System Infrastructure (msys) for Setup. Msys is being explored as a way to deliver similar functionality as the Configuration Advisor to the z/OS platform. Through an interviewlike process, a new DB2 subsystem or data sharing group can be installed with appropriate system parameter settings in a fraction of the time needed for a traditional installation.

Exploitation of real-time statistics. With the presence of the real-time statistics on z/OS (and soon on the Linux, Unix, and Windows platforms) providing infrastructure, the next step is to exploit them. The Maintenance Advisor we mentioned previously will do just that. Look for the DB2 Automation Tool to use these statistics, too.

FARTHER OUT

The features we've covered are only a small sample of what's underway through SMART. Also in the research pipeline are:

Table grouping. Have you ever wanted the ability to discover or describe a set of related objects that could be used as input to other processes? Well, this is exactly what the Data Management Tools group is working on. This grouping function can discover table relationships from system-managed referential integrity (RI), triggers, SQL statements in bound packages, and even the DB2 logs. User-managed RI can also be defined to this grouping facility. The result is an object relationship repository that can be used by other tools such as the DB2 Recovery Expert. So, when you recover two tables, Recovery Expert may remind you that a third table has recently been created that has system-managed RI to one of these tables and that a fourth table was found to be updated in the same unit of work as the first table in a recent inspection of the DB2 log. Recovery Expert will help you determine the set of tables that need to be recovered together in the recovery operation. Other tools being developed will exploit this grouping information, as well.

Learning in query optimization. The cost model the DB2 Query Optimizer uses depends on estimates of the number of rows to be processed at each step of the plan. This so-called cardinality model, in turn, depends on the statistics on the database, which are used to estimate the selectivity of each predicate in the query. Updating the statistics after each update would cause a locking hot spot, so they're updated periodically with the RUNSTATS utility. Therefore, the statistics may be temporarily out of date or incomplete. And the Query Optimizer multiplies the selectivities for each predicate together, essentially assuming that all predicates are independent. The assumptions underlying the Query Optimizer's model can, when violated, occasionally generate errors significant enough to adversely affect the choice of plan.

The DB2 Learning Optimizer (LEO), being developed as part of the SMART project, automatically self-validates the Query Optimizer's cardinality model. LEO uses the execution module to collect the actual cardinalities at each step of the plan. After the query completes, LEO compares these actuals to the optimizer's estimates, to produce adjustment factors to be exploited by future optimization of queries that have similar predicates. In this way, LEO actually learns from its mistakes over time by accumulating additional statistics on the database where it's queried the most. Note that LEO's approach is very general and can correct the result of any sequence of operations, not just the access of a single table or even the application of predicates. And although LEO is being prototyped first on DB2 for Linux, Unix, and Windows, the approach is applicable to all DB2 products.

Meta-Optimizer. DB2 for Linux, Unix, and Windows platforms lets users adjust the amount of optimization each query experiences. If the user specifies optimization level 5 (the system default), DB2 will automatically adjust, using some simple heuristics about the query's complexity and the size of the database. A more sophisticated model for this Meta-Optimizer in development will automatically and reliably determine the appropriate amount of optimization for each query.

KEEPING THINGS HUMMING

The many self-managing features you enjoy in DB2 — and many more you may not even be aware of — are just the tip of the iceberg. In upcoming releases, look for many more SMART features in DB2 and increasingly autonomic behavior from many other IBM hardware and software products. Of course, the ultimate goal is to reduce what you see and take care of everything behind the scenes — just as your refrigerator does.


Sam S. Lightstone is manager of DB2 performance and advanced technology at the IBM Canada Toronto Laboratory and manages the DB2 SMART project. You can reach him at light@ca.ibm.com .

Guy M. Lohman is manager of advanced optimization at the IBM Almaden Research Center in San Jose, Calif. You can reach him at lohman@almaden.ibm.com .

Bryan F. Smith is a senior technical staff member in the Data Management Tools Group at IBM Silicon Valley Laboratory in San Jose, Calif. You can reach him at bfsmith@us.ibm.com .

Randy Horman is manager of administration tools development at the IBM Canada Toronto Laboratory. You can reach him at horman@ca.ibm.com .

Jim Teng is a distinguished engineer for DB2 for z/OS and OS/390 at IBM Silicon Valley Laboratory in San Jose, Calif. You can reach him at jteng@us.ibm.com .


Comments? Questions?

Give us your feedback or ask a question of the author.

Please enter your e-mail address below:

CAREER CENTER
Ready to take that job and shove it?
SEARCH JOBS
RECENT JOB POSTINGS
CAREER NEWS
10 Search Engines You Don't Know About
Go beyond Google and get vertical. These specialized search sites will help you find the business information you need -- fast.

Subscribe to the new digital version of IBM Database Magazine
New Digital Version

Sponsored links:



Subscribe to the IBM Database Magazine Newsletter

Email Address *
First Name
Last Name
HTML Preference
HTML Text
 

Fields with * are required.

 


:: IBM Database Magazine ::