For best performance, make sure that you balance resource use and processing across coservers for all concurrent queries. For information about monitoring query processing and resource use across coservers, see Monitoring Data Flow Between Coservers and Monitoring Current Query Activity and Resource Use.
However, each query should also balance resource and processing evenly across coservers. Even if the table data is evenly distributed across table fragments and coservers, a query might require significantly different numbers of rows from table fragments on some coservers. This dynamic data skew produces unbalanced processing because the coservers that process fewer rows must wait for coservers that process more rows. Monitor balance of processing for individual queries to find out if dynamic data skew causes poor performance.
The onstat -g rgm output also displays the session and query plan IDs, which you use in analyzing output from other onstat options to track specific queries.
If the query uses a lot of temporary space, run xctl onstat -d and examine the output to see how the space is being used.
If you find that a few queries result in data skew that cannot be corrected by changing the table fragmentation or rewriting the query, or if changing table fragmentation would create data skew in many more queries, then issue the SET ENVIRONMENT HANDLE_SKEW ON statement for the sessions that run the skewed queries. For information about the SET ENVIRONMENT options, refer to the IBM Informix: Guide to SQL Syntax.
For general information about these and other onstat options, refer to the utilities chapter in the IBM Informix: Extended Parallel Server Administrator's Reference.
Home | [ Top of Page | Previous Page | Next Page | Contents | Index ]