IBM Systems Tecdhnical University
Transcription
IBM Systems Tecdhnical University
What’s New in DB2 for i 7.2 © Copyright IBM Corporation 2015 Technical University/Symposia materials may not be reproduced in whole or in part without the prior written permission of IBM. 9.0 DB2 for i Strategy • Simplicity • Integration • Robust scalability • Trusted security & availability • Strategic solutions with open standards IBM Systems Tecdhnical University Linda M Swan DB2 for i SQE Optimizer Team IBM Application Development Advancements SQL Routine Enhancements –Constants –Autonomous procedures –Enhanced Debug* –Pipelined table functions* Trigger Obfuscation Compatibility with DB2 Family & Oracle –Timestamp precision –Regular expressions* –Truncate statement –Function parameter defaults –Transfer Ownership statement Linux ODBC driver* JDBC & .NET enhancements** Improved Security & Reliability RCAC Separation of duties Remote Journal SSL Deferred Journal Restore* Journal viewer* Enhanced Performance & Scalability Plan Cache self-management* Enhanced I/O Costing 1.7 TB Indexes* Reuse Deleted Rows VLDB awareness* Enhanced storage management for LOB & Variable-length & LOB columns* Simplified Management Enhanced Plan Cache Metrics & Controls* Generate SQL – improved DDS conversion* Health Center System Limits tracking* Dynamic Compound statement* DB2 for i Services** * - Also available on IBM i 7.1 ** - Also available on IBM i 6.1 & 7.1 ibm.com/developerworks/ibmi/techupdates/db2 Application Development Enhancements IBM Systems Tecdhnical University DB2 for i 7.2 Enhancements • IBM i Client Access drivers & providers (ODBC, ADO.NET, OLE DB) – New offering for Windows middleware: IBM i Access Client Solutions Windows Application Package* – New Linux ODBC driver: IBM i Access Client Solutions Linux Application Package* – IBM i Access Client Solutions consolidates the most commonly used tasks for managing your IBM i into one simplified location. • SQL CLI – Timestamp precision support • Toolbox JDBC – – – – Timestamp precision support QueryTimeoutMechanism connection attribute Faster blocked inserts* JTLite for mobile devices* • Native JDBC Driver – Timestamp precision support • DB2 Connect 10.5 (includes ADO.NET provider, JDBC, & ODBC support) – *SYS naming support + additional DB2 for i connection attributes* – Add-in support for Visual Studio 2013* – Entity framework support** Procedural SQL Enhancements • Parameter defaults • Routine constants • Obfuscation • Simplified management of Routines with CL commands (MOVOBJ, RNMOBJ, CPYLIB, CRTDUPOBJ)* • Enhanced debug capabilities for SQL routines* – Single-step capability – Direct SQL variable evaluations: EVAL %%VarName • Trigger enhancements – Multi-action triggers* – Alter Trigger statement for Enable/Disable • UDF enhancements – ARRAY parameter support – Function resolution casting rules – Pipelined table functions* • Autonomous procedures IBM Systems Tecdhnical University Middleware enhancements • Defaults can be used to minimize code changes when new parameters are added to an existing routine – Parameters can be omitted from invocation when default value defined – Parameters may be specified in any order by specifying the parameter name in the call – Support: • SQL & External user-defined functions • SQL & External stored procedures* CREATE FUNCTION New_Prescription ( drugName CHAR(40), prescID INTEGER DEFAULT (VALUES(NEXT VALUE FOR idSequence)), refils INTEGER DEFAULT 0) ... Omitting parameters – defaults used New_Prescription(‘Accutane') Using a named parameter New_Prescription(‘Accutane', Refils=>3) Routine constants • Provides variables that are guaranteed not to change – Prevent accidental assignments – Prevent value from being changed in debugger session CREATE PROCEDURE Increase_Credit ( ClientID CHAR(8), CreditAmnt DECIMAL(8,2)) LANGUAGE SQL BEGIN DECLARE max_allowed DECIMAL(8,2) CONSTANT 75000; IF CreditAmnt > max_allowed THEN SIGNAL SQLSTATE 38001 SET MESSAGE_TEXT = 'Request exceeds maximum limit'; END IF; ... IBM Systems Tecdhnical University Parameter defaults Obfuscation – By default, DB2 catalog stores routine source code for anyone to see – intellectual asset exposure for software providers – With obfuscation, routine source code can be masked for Triggers, Stored Procedures*, and User-Defined Functions* – Two methods: WRAP function: Generate obfuscated version of CREATE statement to run on customer system VALUES( SYSIBMADM.WRAP (‘CREATE PROCEDURE chgSalary(IN empno CHAR(6)) LANGUAGE SQL BEGIN UPDATE employee SET empsal = empsal*(1 + .05*empjobtype) WHERE empid = empno; END’) ); CREATE PROCEDURE chgSalary ( IN EMPNO CHAR (6)) WRAPPED QSQ07010 aacxW8plW8FjG8pnG8VzG8FD68Fj68:Hl8:dY_pB2qpdW8pdW8pdW_praqebaqebaGEMj_vs PBs5bOJUUqnHVayEl_ogAlGWqz2jJCIE1dQEjt33hd5Sps5cYGViD1urv7vGKeOcC4CwpCibb CREATE_WRAPPED procedure – create obfuscated version of routine CALL SYSIBMADM.CREATE_WRAPPED (‘ CREATE PROCEDURE chgSalary(IN empno CHAR(6)) LANGUAGE SQL BEGIN UPDATE employee SET empsal = empsal*(1 + .05*empjobtype) WHERE empid = empno; END’); Multi-action SQL Triggers* • A single SQL Trigger can be created to handle multiple database operations Enables centralization of all trigger logic Can be used to simplify management and installation of triggers CREATE TRIGGER employee_monitor AFTER INSERT OR DELETE OR UPDATE OF salary ON employee REFERENCING NEW AS n OLD AS o FOR EACH ROW BEGIN IF INSERTING THEN UPDATE company_stats SET nbremp=nbremp + 1; END IF; IF DELETING THEN UPDATE company_stats SET nbremp=nbremp - 1; END IF; IF UPDATING AND (n.salary > 1.1 * o.salary) THEN SIGNAL SQLSTATE '75000' SET MESSAGE_TEXT = 'Salary increase > 10%' END IF; END IBM Systems Tecdhnical University • Enables the body of SQL routine to be protected • Enables a stored procedure’s database changes to be executed independently of the calling application Without Autonomy, Commit/Rollback includes database changes made by calling application DB2 automatically issues Commit/Rollback for autonomous procedure CREATE PROCEDURE update_agency(IN agencyVID INTEGER, IN agencyNUM INTEGER, IN agencyID INTEGER, IN agentNID) LANGUAGE SQL AUTONOMOUS BEGIN UPDATE agency SET agency_vid=agencyVID, agency_num=agencyNUM, agent_NID=agentNID, updated_date=CURRENT_TIMESTAMP WHERE agency_ID = agencyID; INSERT INTO agency_log VALUES(USER, CURRENT_TIMESTAMP, agencyVID, agencyNUM, agentNID); END Pipelined SQL Table Functions* • More flexibility for SQL UDTFs – Same flexibility offered by External UDTF with simpler coding – Returned data no longer limited to a single SELECT statement • Ability to handle errors & warnings • Ability to customize join behavior • Auditing/logging of individual rows returned CREATE FUNCTION getPatients(i_code VARCHAR(3)) RETURNS TABLE(pID CHAR(6), treatDate DATE) LANGUAGE SQL MODIFIES SQL DATA DETERMINISTIC NOT FENCED EXTERNAL ACTION CARDINALITY 500 BEGIN FOR cur1 CURSOR FOR SELECT pID, treatDate FROM patient, treatment WHERE pID= treatPID AND treatCode=UPPER(i_code) DO INSERT INTO audit_patient_access VALUES(pID, USER, CURRENT TIMESTAMP); PIPE(pID, treatDate); END FOR; RETURN; END IBM Systems Tecdhnical University Autonomous Procedures • Timestamp precision controls CREATE TABLE tstab(tscol1 TIMESTAMP(0),tscol2 TIMESTAMP(12)) • RPAD & LPAD functions* (right/left pad string functions) • Regular expressions* • Check Constraint violation controls …CHECK(row_status IN ('A', 'I') ON INSERT VIOLATION SET row_status=DEFAULT ON UPDATE VIOLATION PRESERVE row_status) • Expressions in PREPARE & EXECUTE IMMEDIATE • HTTP functions for integration with REST & SOAP web services* https://ibm.biz/BdD24s • Built-in global variables Regular Expressions* • Delivers powerful pattern matching search capability to SQL – Regular expression patterns like those supported by grep, awk, etc. – Much richer expressions than LIKE predicate – Searches are not indexed like IBM OmniFind searches • Example: Identity phone numbers that don’t match (123) 123-1234 format (111-555-2222, (111)555-2222, …) SELECT custID, custPhone FROM customer WHERE NOT REGEXP_LIKE(custPhone,'\([0-9]{3}\) [0-9]{3}-[0-9]{4}') REGEXP_LIKE Predicate that searches for expression pattern in string REGEXP_COUNT Returns count of occurrences of expression pattern REGEXP_INSTR Returns start or end position of matched substring REGEXP_SUBSTR Returns occurrence of substring that matches pattern REGEXP_REPLACE Returns modified version of source string where matched pattern occurrences replaced with the replacement string IBM Systems Tecdhnical University Additional App Development Enhancements • Can be referenced like user-defined variables to take an action based on a job’s current environment – – – – Located in SYSIBM Read-only, maintained by system Easy to access current value with SELECT INTO or VALUES statements Useful for RCAC definitions, Triggers, and More Variable Name Schema Data Type Size JOB_NAME QSYS2 VARCHAR 28 SERVER_MODE_JOB_NAME QSYS2 VARCHAR 28 CLIENT_IPADDR SYSIBM VARCHAR 128 CLIENT_HOST SYSIBM VARCHAR 255 CLIENT_PORT SYSIBM INTEGER - ROUTINE_SPECIFIC_NAME SYSIBM VARCHAR 128 ROUTINE_SCHEMA SYSIBM VARCHAR 128 ROUTINE_TYPE SYSIBM CHAR 1 PACKAGE_NAME SYSIBM VARCHAR 128 PACKAGE_SCHEMA SYSIBM VARCHAR 128 PACKAGE_VERSION SYSIBM VARCHAR 64 SQL Development Tools • Application development – Rational Developer for i – Data Studio (free download – SQL procedures & functions) Report writing – DB2 Web Query – Rich set of graphical data presentation formats – Simplifies report management IBM Systems Tecdhnical University Built-In Global Variables Separation of Duties • Greater emphasis on separation of duties across IT functions – Restrict the amount of power held by one individual – Restrict IT Security personnel from having the ability to both control data access and perform data access • New security administration function usage (QIBM_DB_SECADM) enables security personnel to be limited to just controlling data access – Example: Security Administration Function User can grant SELECT privilege on table, but cannot read the contents of the table – Interface: CHGFCNUSG FCNID(QIBM_DB_SECADM) USER(SECUSR) USAGE(*ALLOWED) – Considerations: • Security Administrator can only grant data access to others, not themselves • Only QSECOFR or another security administrator can add users to the security administrator function usage • Existing grant privilege requirements (Object Owner, Object Management, or *ALLOBJ special authority) also still apply • Security Administrator function usage complements function usage IDs created for System i Navigator: QIBM_DB_SYSMON & QIBM_DB_SQLADM IBM Systems Tecdhnical University Security Enhancements Table Access: ALL or NOTHING • No easy way to restrict access to a specific set of rows or values within a column • Government regulations and corporate policies aggressively pushing IT to restrict user/application access to sensitive data A Solution…. Row and Column Access Control (RCAC) What is RCAC? • Additional layer of data security available with DB2 • Complementary to table level security • Subsetting access to only the required data for a task • Controls access to a table at the row, column, or both • Two sets of rules – Permissions for rows – Masks for columns • Delivered with IBM Advanced Data Security for i feature – No-charge feature, option 47 – Required on development & production systems IBM Systems Tecdhnical University The Business Problem… • Currently, data access is restricted with application logic or views • Users with direct access to DB2 objects can bypass these layers – Example: Users with *ALLOBJ authority can still view all data • DB2 RCAC enables all data access (SQL, CL, native record-level, etc.) be controlled at row/column level How can we ensure that managers only see data for their own employees? User with *ALLOBJ access to – Set up rich security policies – Prevents security administrators authority from accessing all data in a database – No dependency on application logic – Allows for data masking (column) – Facilitates table level multi-tenancy Scenario: Healthcare Insurance Industry How can we ensure that a social security number column is masked out for unauthorized users? IBM Systems Tecdhnical University Why Use RCAC? • Scenario has the following permissions attached 1 2 3 – Patients • Can only access their own data – Physicians • Can only access their own patients’ data – Membership officers, Accounting, Drug researchers • Can access all data – Nobody else sees any data Scenario: Create Permission 1 2 3 CREATE PERMISSION access_to_row ON patient FOR ROWS WHERE ( VERIFY_GROUP_FOR_USER(SESSION_USER,’PATIENT’) = 1 AND patient.userid = SESSION_USER ) OR ( VERIFY_GROUP_FOR_USER (SESSION_USER,’PCP’) = 1 AND patient.pcp_id = SESSION_USER ) OR ( VERIFY_GROUP_FOR_USER (SESSION_USER,’MEMBERSHIP’) = 1 OR VERIFY_GROUP_FOR_USER (SESSION_USER,’ACCOUNTING’) = 1 OR VERIFY_GROUP_FOR_USER(SESSION_USER,’RESEARCH’)=1 ) ENFORCED FOR ALL ACCESS ENABLE; ALTER TABLE patient ACTIVATE ROW ACCESS CONTROL; IBM Systems Tecdhnical University Scenario: Create Permission UPDATE patient SET pharmacy = ‘codeine’ WHERE name=‘Sam’ PID USERID NAME ADDRESS PHARMACY ACCT_BALANCE PCP_ID 123 551 234 MAX Max First St. hypertension 89.70 LEE 123 589 812 MIKE Mike Long St. diabetics 8.30 JAMES 123 119 856 SAM Sam Big St. codeine 12.50 LEE 123 191 454 DOUG Doug Good St. influenza 7.68 JAMES 123 456 789 BOB Bob 123 Some St. hypertension 9.00 LEE Successful UPDATE statement! Scenario: Update Table with Permissions UPDATE patient SET pharmacy = ‘codeine’ WHERE name=‘Doug’ PID USERID NAME ADDRESS PHARMACY ACCT_BALANCE PCP_ID 123 551 234 MAX Max First St. hypertension 89.70 LEE 123 589 812 MIKE Mike Long St. diabetics 8.30 JAMES 123 119 856 SAM Sam Big St. codeine 12.50 LEE 123 191 454 DOUG Doug Good St. influenza 7.68 JAMES 123 456 789 BOB Bob 123 Some St. hypertension 9.00 LEE • Unsuccessful UPDATE statement – Row not found for UPDATE – SQLSTATE=02000, SQLCODE=100 • If you cannot view a row, you cannot update (or add) the row either IBM Systems Tecdhnical University Scenario: Update Table with Permissions SELECT * FROM patient PID USERID NAME ADDRESS PHARMACY ACCT_BALANCE PCP_ID 123 551 234 MAX Max First St. hypertension 89.70 LEE 123 119 856 SAM Sam Big St. codeine 12.50 LEE 123 456 789 BOB Bob 123 Some St. hypertension 9.00 LEE • Row Access Control – Doctors can only see the data of their own patients Scenario: Select from Table with Permission SELECT * FROM patient PID USERID NAME ADDRESS PHARMACY ACCT_BALANCE PCP_ID 123 551 234 MAX Max First St. hypertension 89.70 LEE 123 589 812 MIKE Mike Long St. diabetics 8.30 JAMES 123 119 856 SAM Sam Big St. codeine 12.50 LEE 123 191 454 DOUG Doug Good St. influenza 7.68 JAMES 123 456 789 BOB Bob 123 Some St. hypertension 9.00 LEE • Row Access Control – Accounting, drug researchers and membership officers can see all data IBM Systems Tecdhnical University Scenario: Select from Table with Permission • Scenario has the following permission attached – PID number column • Patients can see full Patient ID number • Everyone else sees ‘XXX XXX ‘ + last three digits of PID CREATE MASK pid_mask ON patient FOR COLUMN pid RETURN CASE WHEN VERIFY_GROUP_FOR_USER(SESSION_USER,‘PATIENT’) = 1 THEN pid ELSE ‘XXX XXX ‘ || SUBSTR(pid, 8, 3) END ENABLE; ALTER TABLE patient ACTIVATE COLUMN ACCESS CONTROL; Scenario: Select from Table with Mask SELECT * FROM patient PID USERID NAME ADDRESS PHARMACY ACCT_BALANCE PCP_ID XXX XXX 234 MAX Max First St. hypertension 89.70 LEE XXX XXX 856 SAM Sam Big St. codeine 12.50 LEE XXX XXX 789 BOB Bob 123 Some St. hypertension 9.00 LEE • Column Access Control – Doctors cannot see PID numbers • Row Access Control – Doctors can only see the rows of their own patients IBM Systems Tecdhnical University Scenario: Create Column Mask SELECT * FROM patient PID USERID NAME ADDRESS PHARMACY ACCT_BALANCE PCP_ID 123 456 789 BOB Bob 123 Some St. hypertension 9.00 LEE • Column Access Control – Patients can see PID numbers • Row Access Control – Patients can only see their own data RCAC Considerations • Only those users with security administration function usage (QIBM_DB_SECADM) are allowed to add RCAC rules to a table • RCAC rules stored in the table object • Access control rules automatically applied to SQL Views that reference an RCAC table • UDFs and Triggers must be altered to specify the SECURED option once RCAC rules added to associated table • Native query interfaces (OPNQRYF, RUNQRY, etc.) may return slightly different results • Following interfaces will NOT work when referencing table with RCAC rules – Multi-format logical files – Tables with Read Triggers – File/query specifying ICU 2.6.1 sort sequence IBM Systems Tecdhnical University Scenario: Select from Table with Mask • TRANSFER OWNERSHIP statement – SQL equivalent of CHGOBJOWN TRANSFER OWNERSHIP OF TABLE testlib.orders TO USER newpgmr PRESERVE PRIVILEGES • GROUP and USER keywords for more accurate security implementation – GRANT ALL ON sales_tab TO USER frank – GRANT ALL ON sales_tab TO GROUP marketing • CURRENT_USER special register – Returns adopted user profile for program’s that adopt authority – When multiple user profiles have been adopted, most recently adopted profile is returned • New HOSTVAR(*SECURE)* parameter to prevent Database Monitor from capturing sensitive data values used in comparisons Manageability Enhancements IBM Systems Tecdhnical University Additional security enhancements • System i Navigator improvements • Performance Data Investigator – new DB2 reports & perspectives • SQL scripting with Dynamic Compound statements • TRUNCATE statement • SQL Package Management • DB2 for i Services • Availability & Recovery enhancements Graphical management - System i Navigator Enhancements Performance Tools Improved Plan Cache metrics & controls* Exact Plan Cache filtering for advised indexes* Enhanced monitor comparison* Rich format reports – charts & graphs* Management Tools Generate SQL – enhanced DDS conversion* SQL routines single-step debug* Obfuscation integration* Saving of stored procedure result sets* Enhanced journal entry analysis* Health Center – System limits* IBM Systems Tecdhnical University Manageability Enhancements • New controls* – Maximum size for automatic sizing – Hit Ratio – Number of longest runs for a statement Generate SQL – Enhanced DDS conversion New options for converting keyed LFs & PFs to SQL* – Generate index – Generate view & index Programmatic interface – GENERATE_SQL procedure* IBM Systems Tecdhnical University Plan Cache – Enhanced Metrics & Controls Performance Data Investigator (PDI) • Updated DB2 performance reports & perspectives • PDI available through IBM Navigator for i browser client IBM Systems Tecdhnical University Health Center – System limits analysis What are the choices? IBM System i Navigator IBM Navigator for i Where does it run? Windows PC Install Browser Served from IBM i 6.1 and forward Interface similarities Most features are identical, including TR enhancements Most features are identical, including TR enhancements Interface differences Run SQL Scripts Visual Explain Time-based performance metrics for SQL(PDI) OmniFind external object collection administration Latest functionality Apply latest IBM i Access for Windows 7.1 service pack Apply latest IBM HTTP SERVER for i Group PTF Launch URL: https://<ibmi>:2005/ibm/console/logon.jsp SQL Scripting with Dynamic Compound Statement* • Dynamic Compound Statement provides ability to have rich SQL scripting language for database setup & management – Conditional logic & error handling – Input values with Global Variables – Without creating a SQL routine – on the fly execution BEGIN DECLARE CONTINUE HANDLER FOR SQLSTATE '42704' BEGIN /* Table may or may not already exist*/ INSERT INTO error_log VALUES(SESSION_USER, CURRENT TIMESTAMP, '42704'); END; IF SESSION_USER <> ' DBADMIN' THEN SIGNAL SQLSTATE '38001' SET MESSAGE_TEXT='Unauthorized User'; END IF; IF Setuplib.Create_Var=‘YES’ THEN DROP TABLE orders; CREATE TABLE orders(ordID CHAR(6), ordQty INTEGER, ordCustID CHAR(5)); END IF; END; IBM Systems Tecdhnical University Browser client – IBM Navigator for i • Easy to integrate with CL programs – RUNSQL & RUNSQLSTM CL commands – Usage of Global Variables requires ILE CL programs PGM PARM(&CRTMOD) DCL &CRTMOD TYPE(*CHAR) LEN(10) DCL &SQLSTMT TYPE(*CHAR) LEN(256) CHGVAR VAR(&SQLSTMT) + VALUE('SET SETUPLIB.CREATE_VAR = '''|| &CRTMOD||'''' ) RUNSQL SQL(&SQLSTMT) NAMING(*SQL) /* DBCREATE contains Dynamic Compound Statement Source */ RUNSQLSTM SRCFILE(SETUPLIB/SRC) SRCMBR(DBCREATE) NAMING(*SQL) ENDPGM Additional Management Enhancements • TRUNCATE statement – Delete all rows from a table – Additional configuration options: • • • Prevent if Delete Triggers exist of ignoring Reuse storage instead of dropping Restart Identity column instead of continuing • Improved Identity column management with RESTART_IDENTITY utility* • Simplified SQL package management with SYSPACKAGESTAT view* • Queued exclusive locks for ALTER TABLE, LOCK TABLE, and RENAME TABLE (QAQQINI option: PREVENT_ADDITONAL_CONFLICTING_LOCKS) • DB2 for i – Services** – Provide easy SQL-based access to retrieve system information (security, storage, work management, etc.) – Utilities to perform DB2 administrative & management tasks IBM Systems Tecdhnical University SQL Scripting with Dynamic Compound Statement* SELECT user_name, usage, user_type FROM qsys2.function_usage WHERE function_id = ‘QIBM_SQL_SECADM’ SELECT bucket_current_size "Current Temp Storage", bucket_peak_size "Peak Temp Storage", job_number FROM qsys2.systmpstg WHERE job_status = '*ACTIVE' ORDER BY bucket_current_size DESC DB2 for i Services Complete listing found on IBM i developerWorks: https://ibm.biz/DB2Services Service objects found in QSYS2, unless otherwise noted • System Services – – – – – – – – – SYSTEM_VALUE_INFO GET_JOB_INFO, JOBLOG_INFO PTF_INFO, GROUP_PTF_INFO GROUP_PTF_CURRENCY(SYSTOOLS) TCP_INFO SYSDISKSTAT USER_STORAGE ENV_SYS_INFO(SYSIBMADM) SYSLIMITS • Security Services – – – – – Performance Services FUNCTION_INFO FUNCTION_USAGE USER_INFO GROUP_PROFILE_ENTRIES SQL_CHECK_AUTHORITY – – – – – – – DUMP_PLAN_CACHE DUMP_PLAN_CACHE_TopN DUMP_PLAN_CACHE_PROPERTIES EXTRACT_STATEMENTS RESET_TABLE_INDEX_STATISTICS HARVEST_INDEX_ADVICE (SYSTOOLS) ACT_ON_INDEX_ADVICE (SYSTOOLS) IBM Systems Tecdhnical University DB2 for i Services - Examples • SSL support for Remote Journal • Deferred processing for Journal Restores* – Journaling automatically started once dependent journal restored – Extends V6R1 support delivered for Indexes & Views that DFRID parameter & RSTDFROBJ command • Journal viewer – data & audit journals – Programmatic interface**: DISPLAY_JOURNAL table function https://ibm.biz/BdD8U6 – Graphical viewer* - Navigator clients Availability & Recovery Enhancements • Graphical Journal entry viewer: – Filtering & ordering – Customize columns displayed from journal entry IBM Systems Tecdhnical University Availability & Recovery Enhancements Performance & Scalability Enhancements • SQL Query Engine(SQE) Enhancements – In-Memory Database: Tables & Indexes • KEEP IN MEMORY clause • CHGPF/CHGLF parameter* – – – – Enhanced I/O Costing & IN list processing Plan Cache Size recall on IPL** Auto Adjust Plan Cache Sizing* Native Query support • Enhanced Scalability – – – – – – – 1.7 Terabyte Indexes* Live movement of DB2 objects to SSDs** Row movement between table partitions Reuse Deleted Rows algorithm VLDB awareness* Improved storage management for Variable-length & LOB columns* Simplified blocking with OVERRIDE_TABLE procedure** ALTER TABLE performance improvements** IBM Systems Tecdhnical University Performance & Scalability Enhancements • By default, SQE now attempts to process native queries (OPNQRYF, RUNQRY, etc.) and native opens of SQL views – Traditional native queries will be taking a new code path – Testing & benchmarking highly recommended • Users might want to change value of the SQE_NATIVE_ACCESS QAQQINI option to *NO due to the following reasons: – Different results may be returned • • • • • • • Results in different order Different values for null columns or columns with errors Suppression of some mapping error messages Loss of RRN positioning capabilities Duplicate key processing behavior differences Missing key feedback Larger open feedback record counts • … (reference 7.2 Memo To Users for complete details) – Creation of new indexes to tune performance of native queries – SQE Plan Cache contention with SQL workloads In-Memory Database Enablement • Boost performance of SQL & analytic workloads by further exploiting your investments in memory – Leverage tight integration between DB2 for i & operating system – Identify key table & index objects – DB2 manages memory for tagged objects using advanced parallel techniques • In-Memory attribute only honored for SQL interfaces • SQL Interface – 7.2 support – KEEP IN MEMORY clause • • CREATE statements ALTER TABLE statement • CL interface - starting with 7.1 – KEEPINMEM parameter • • CHGPF command CHGLF command IBM Systems Tecdhnical University SQE Native Query Support DB2 for i Websites – Home Page: ibm.com/systems/i/db2 – Technology Updates: ibm.com/developerworks/ibmi/techupdates/db2 – Blog db2foriblogspot.com – Porting Zone: ibm.com/partnerworld/i/db2porting Forums and Education resoures – DB2: https://ibm.biz/db2iforum – IBM i: https://www.ibm.com/developerworks/forums/forum.jspa?forumID=2675 – ibm.com/systems/power/software/i/db2/gettingstarted.html – ibm.com/partnerworld/wps/training/i5os/courses DB2 for i Publications – White Papers: ibm.com/partnerworld/wps/whitepaper/i5os – Online Manuals: ibm.biz/db2iBooks – DB2 for i Redbooks (ibm.biz/db2iRedbooks) • Getting Started with DB2 Web Query for System i (SG24-7214) • OnDemand SQL Performance Analysis … in V5R4 (SG24-7326) • Preparing for and Tuning the SQL Query Engine on DB2 for i (SG24-6598) • Modernizing IBM i Applications from the Database Up (SG24-8185) • IBM i 7.1 Technology Overview with Technology Refresh Updates (updated 12/2014) Continue growing your IBM skills career all ibm.com/training provides a comprehensive portfolio of skills and accelerators that are designed to meet your training needs. • Training in cities local to you - where and when you need it, and in the format you want – Use IBM Training Search to locate public training classes near to you with our five Global Training Providers – Private training is also available with our Global Training Providers • Demanding a high standard of quality – view the paths to success – Browse Training Paths and Certifications to find the course that is right for you • If you can’t find the training that is right for you with our Global Training Providers, we can help. – Contact IBM Training at dpmc@us.ibm.com Global Skills Initiative 54 © Copyright IBM Corporation 2015 IBM Systems Tecdhnical University Additional Information