B4: DataServer Best Practices Revised & Revisited Noel Shannon Senior Solution Consultant

Embed Size (px)

DESCRIPTION

© 2008 Progress Software Corporation 3 Agenda  DataServers & Best Practices The path to successful DataServer development & deployment Why ? When to use ? What are they ? Why ? When to use ? What are they ?

Citation preview

B4: DataServer Best Practices Revised & Revisited Noel Shannon Senior Solution Consultant 2008 Progress Software Corporation 2 D I S C L A I M E R Under Development This talk includes information about potential future products and/or product enhancements. What I am going to say reflects our current thinking, but the information contained herein is preliminary and subject to change. Any future products we ultimately deliver may be materially different from what is described here. D I S C L A I M E R 2008 Progress Software Corporation 3 Agenda DataServers & Best Practices The path to successful DataServer development & deployment Why ? When to use ? What are they ? Why ? When to use ? What are they ? 2008 Progress Software Corporation 4 DataServers: WHY ? Has a customer, your partners or your company ever asked you: Does your OpenEdge Application run against MS SQL Server ? Oracle ? Some other data source ? 2008 Progress Software Corporation 5 DataServers WHEN ? When yes on the WHY question would be compelling Yes is compelling when theres a willingness to: Invest mind share in the foreign data source Re-examine parts of your OpenEdge application Compromise performance for conformance in light of a compelling business case, corporate decision or market opportunity. 2008 Progress Software Corporation 6 What is a DataServer ? A redirection layer for database requests in an OpenEdge client or agent. OpenEdge database request translation Interface layer communication with a foreign data source 2008 Progress Software Corporation 7 What is a DataServer ? OpenEdge Database OpenEdge Database 2008 Progress Software Corporation 8 What is a DataServer ? MS SQL Server MS SQL Server INTVARCHAR 3B 4Gates 2008 Progress Software Corporation 9 What is a DataServer ? Oracle SQL Server Oracle SQL Server INTVARCHAR2 5L 6Ellison MS SQL Server MS SQL Server INTVARCHAR 3B 4Gates 2008 Progress Software Corporation 10 What is a DataServer ? Oracle SQL Server Oracle SQL Server INTVARCHAR2 5L 6Ellison MS SQL Server MS SQL Server INTVARCHAR 3B 4Gates 2008 Progress Software Corporation 11 What is a DataServer ? Oracle SQL Server Oracle SQL Server INTVARCHAR2 5L 6Ellison MS SQL Server MS SQL Server INTVARCHAR 3B 4Gates (process) 2008 Progress Software Corporation 12 What is a DataServer ? OpenEdge Database OpenEdge Database OpenEdge Database OpenEdge Database 2008 Progress Software Corporation 13 What is a DataServer ? Oracle SQL Server Oracle SQL Server INTVARCHAR2 5L 6Ellison MS SQL Server MS SQL Server INTVARCHAR 3B 4Gates OpenEdge Database OpenEdge Database INTCHAR 2008 Progress Software Corporation 14 Agenda DataServers & Best Practices The path to successful DataServer development & deployment Why When to use What are they Why ? When to use ? What are they ? 2008 Progress Software Corporation 15 WHY Use DataServer Best Practices ? Were twice as likely to avoid pain than to pursue gain Why arent DataServers just painless load and go ? 2008 Progress Software Corporation 16 WHY Use DataServer Best Practices ? Appreciate: You are replacing the strengths of your OpenEdge Database with those of another data source: Deference is given to the foreign data source on: Set-based SQL design Cursor Consistency Security Transaction Control Lock Management Query Optimization & Indexing Constraints 2008 Progress Software Corporation 17 WHY Use DataServer Best Practices ? Appreciate: You are replacing the features of your OpenEdge Database with those of another data source: Context resides in the foreign data source for: Data Types: Fixed versus variable length strings Sequences, Triggers, Constraint implementations Schema, Naming, Qualifying, Networking Conventions NULLs versus UNKNOWNs PL/SQL or T-SQL versus ABL 2008 Progress Software Corporation 18 WHY Use DataServer Best Practices ? Because you need a map ! 2008 Progress Software Corporation 19 WHEN To Use DataServer Best Practices ? Always ! The Flavors of pain relief: Minimize loss of performance Maximize conformance Reduce time to market 2008 Progress Software Corporation 20 WHEN To Use DataServer Best Practices ? Conformance: Example Picking an Index FOR EACH customer: END. FOR EACH employee USE-INDEX department: END. FOR EACH invoice BY zip-code: END. 2008 Progress Software Corporation 21 WHEN To Use DataServer Best Practices ? Performance: Example Who should do the join ? FOR EACH customer, EACH order OF customer QUERY-TUNING (NO-JOIN-BY-SQLDB): DISPLAY customer.name customer.cust-num customer.postal-code order.order-date. END. 2008 Progress Software Corporation 22 WHEN To Use DataServer Best Practices ? Performance: Example What will be joined ? FOR EACH customer, EACH order OF customer WHERE LENGTH(RIGHT-TRIM(customer.name)) > 5: DISPLAY customer.name customer.cust-num customer.postal-code order.order-date. END. 2008 Progress Software Corporation 23 WHEN To Use DataServer Best Practices ? Performance: Example Where is the join done ? FOR EACH customer, FIRST order OUTER-JOIN OF customer WHERE order.order-num < 50: DISPLAY customer.name customer.cust-num customer.postal-code order.order-date. END. 2008 Progress Software Corporation 24 WHAT are the DataServer Best Practices ? Steps for Successful DataServer Development and Deployment (Located on PSDN) DataServer Guides Chapter(s) on Programming Considerations The Best Practices White Paper 2008 Progress Software Corporation 25 WHAT are the DataServer Best Practices ? STEP ONE: Eliminate DBMS differences STEP TWO: Optimize the Application, the DataServer, and the DBMS. In the Best Practices White Paper 2008 Progress Software Corporation 26 WHAT are the DataServer Best Practices ? First get it to work Compile incompatibilities are minimal SETUSERID COUNT-OF CONTAINS RECID ** ** If ROWID index is not a unique integer STEP ONE: Eliminate DBMS differences 2008 Progress Software Corporation 27 WHAT are the DataServer Best Practices ? Then there are the nuances FIND cust WHERE name BEGINS SI. FOR EACH cust WHERE name