1 / 16

New Features of IDS.2000

New Features of IDS.2000. Paul Brown , INFORMIX Software (The DBMS Company). 8.1. 8.2. 8.3. 7.2. 7.3. 9.1. 9.21. 9.3. 1996. 1997. 1998. 1999. 2000. Where are we? How did we get here?. OK. So What Have We Got Then ?. What are the differences between 7.X and 9.X?

slottie
Download Presentation

New Features of IDS.2000

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. New Features of IDS.2000 Paul Brown, INFORMIX Software (The DBMS Company)

  2. 8.1 8.2 8.3 7.2 7.3 9.1 9.21 9.3 1996 1997 1998 1999 2000 Where are we? How did we get here?

  3. OK. So What Have We Got Then ? • What are the differences between 7.X and 9.X? • Features and Functionality • Product Quality and Performance Changes • What are the Differences between 9.x and 9.21? • Lots of stuff now works, so we can talk about it • And What is going on in 9.3 (IDS.2001) • Lots of cool stuff • And By The Way, What’s IDS.2000 and IIF.2000? • Oh. Yes. Let’s talk about that

  4. Differences: 7.X and IDS.2000 • Nothing is Lost by Moving to IDS.2000 • IDS.2000 (9.21) functionality is super-set of 7.31 • IDS.2000 (9.21) is at least as fast as 7.31 • Upgrade does not require unload/reload • There are Some Gotchas • Changed indexing strategy: bigger indices • Slightly more memory per connection • and Overall Quality is Good • Lots of Bug Fixes

  5. New Features: OODLES of ‘em • New features, and new functionality • User-defined Types and Functions (Extend SQL) • Java for database procedures, types (SQL-J) • In 9.21, can use JDK 1.2 inside the server. • All of the DataBlades™ work for you • Data Management Improvements and Innovations • 128 character identifiers • Fuzzy check-pointing • ON SELECT Triggers • Java Classes as Database Stored Procedures

  6. Extensions that can be bought or are bundled with the product: DataBlades, BladeLets, etc. Build customized extensions that bring business logic into the SQL processor. Slightly Technical Example . . . -- Object-Relational System -- CREATE TABLE HospitalRooms ( Name VARCHAR(128) NOT NULL, Equipment Document NOT NULL WhereGeoPoint NOT NULL, Occupied SET( PeriodNOT NULL ) ); -- “Show me all rooms available for the next five -- days within 45 miles of the patient’s -- location equipped with a defilibrator?” -- SELECT H.Name FROM HospitalRooms H, Patients P WHERE Contains (H.Where, Circle( P.Location, ‘45 Miles’ ) ) AND P.Name = ‘Fred Flintstone’ AND DocContains (H.Equipment,“defilibrator” ) AND NOT Booked (H.Bookings, Period (TODAY,TODAY+5)); -- -- Key value: Simply by adding extra parts to the -- query you can ask different questions. The -- alternative is to write, compile and debug ‘C’.

  7. How is it Built? Queries Logic Data Response

  8. CREATE ROW TYPE BirthDay ( MMonth INTEGER NOT NULL, DDay INTEGER NOT NULL, FromLeapYear BOOLEAN NOT NULL ); CREATE FUNCTION BirthDay ( Arg1 date ) RETURNING BirthDay RETURN BirthDay ( MONTH(Arg1), DAY(Arg1), FromLeapYear(YEAR(Arg1)); END FUNCTION; UDTs & UDRs Example - 1/2

  9. CREATE TABLE Customers ( Name PersonName NOT NULL, BirthDate DATE NOT NULL ); INSERT INTO Customers VALUES ( PersonName(‘McDoogal’,’Fred’), ‘02/28/1970’); INSERT INTO Customers VALUES ( PersonName(‘Lo’,’Anne’), ‘02/29/1968’); SELECT Print(C.Name) FROM Customers C WHERE BirthDay(C.BirthDate)=BirthDay(‘02/28/1999’); SELECT Print(C.Name) FROM Customers C WHERE BirthDay(C.BirthDate) =BirthDay(‘02/29/2000’); UDTs & UDRs Example - 2/2

  10. What are DataBlade™ Modules? • Custom Extensions Created by Partner • Market leaders, or Technology leaders • Informix’s Customers can Buy/Use • Text - What customers said “help”? • GIS - Where are my customers? • ESRI, MapInfo, Geodetic. • ‘The Little Things’ • T-SQL, Bill-of-Materials Processing, SQL extras • Extend Existing SQL-92 Database

  11. Shared Statement Cache • New Functionality for 9.2 • Query plans shared between connections • Big benefits for sites with lots of users and only one or two applications CPU-VP SELECT F.First, B.Second FROM Foo F, Bar B WHERE F.A = B.A AND F.C = :C1 AND B.C = :C2; Plan ( C1, C2 ) { } SELECT F.First, B.Second FROM Foo F, Bar B WHERE F.A = B.A AND F.C = :C1 AND B.C = :C2;

  12. Unique to Informix IDS.2000 Audit and monitor READs, in addition to writes Like all TRIGGERS, imposes a overhead on normal processing. Will be a multiple ( >2X) depending on what you do in triggered action. ON SELECT Triggers CREATE TABLE Articles ( Id INTEGER NOT NULL, Title Article_Title NOT NULL, . Text Document NOT NULL, . ); CREATE TRIGGER Article_Billing SELECT OF Text ON Articles REFERENCING OLD AS Read_Row FOR EACH ROW ( ( INSERT INTO Billing VALUES ( USER, NOW, Read_Row.Id) );

  13. Two Kinds of UDA Overloading of Built-in SQL Aggregates. SUM, MIN, MAX, AVG, VARIANCE. Requires that you supply appropriate low-level functions CREATED Aggregates Compute a result from a single pass over a large number of data values User-defined Aggregates SELECT O.Customer, SUM( O.Physical_Quantity ) FROM Orders O GROUP BY O.Customer; CREATE AGGREGATE regression WITH ( INIT = regression_init, ITER = regression_iter, COMBINE = regression_combine, FINAL = regression_final ) SELECT E.Dept_Name regression ( ROW (E.salary, (TODAY - E.DOB) ) ) FROM Employees E GROUP BY E.Dept_Name;

  14. Java VM in Engine Can use any one of several, of which the SunSoft JDK1.2 is best Fully SQL-J compliant Includes JDBC callbacks in UDR Big Advantage: Java Class logic inside, or outside the DBMS. Java-in-the-Server execute procedure install_jar( "file:/UDO/extend/name/person_name.jar", ”person_name_jar"); create function person_name ( first_name lvarchar, second_name lvarchar ) returns person_name with ( not variant, parallelizable ) external name ‘person_name_jar:p_name.new( String,String)’ language java; grant usage on function person_name ( lvarchar, lvarchar) to public;

  15. Quick Review of 9.3 (Due, 2001) • Continues the O-ing of the RDBMS • ER Replication for All UDTs (Just in-row in 9.21) • Fragment by UDR, CHECK UDR, etc • New Java Implementation • Krak-2 Architecture - Change in JNI Bindings • Chunk Size Change - 2 Terabyte Chunks • Change page header to permit more pages • Truncate Table • No more “UNLOAD/DROP/CREATE/LOAD” • More features in future releases • Other stuff in the code, just not QA’d yet

  16. Summary and Conclusions • IDS.2000 is Road Ahead from 7.X for OLTP • Code and Skills Investment is Preserved • 9.21 performance is as good or better than 7.X • Lots of New Features • Extensibility (Object-Relational DBMS) • User-defined Types and User-defined Functions • DataBlade Extensions • Query-Language Innovation • Long Identifiers • ON SELECT TRIGGER • Data Management Innovation • Fuzzy Checkpointing • Shared Statement Cache

More Related