Script (.pdf file, 2 MB) - SAP MaxDB
Script (.pdf file, 2 MB) - SAP MaxDB
Script (.pdf file, 2 MB) - SAP MaxDB
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
<strong>SAP</strong>® <strong>MaxDB</strong> Expert Sessions<br />
<strong>SAP</strong> <strong>MaxDB</strong> SQL Query Optimization - Part 1<br />
Christiane Hienger <strong>SAP</strong> AG<br />
Holger Becker <strong>SAP</strong> AG<br />
August 28, 2012<br />
© <strong>SAP</strong> 2012 <strong>SAP</strong> <strong>MaxDB</strong> Expert Session – Optimizer (Part 1)1
Agenda<br />
1. Introduction<br />
2 . EXPLAIN<br />
2.1. EXPLAIN<br />
2.2. EXPLAIN QUERYREWRITE<br />
3. Single Table Optimizer Strategies<br />
© <strong>SAP</strong> 20102/<strong>MaxDB</strong> 7.8 Expert Session– Optimizer Part 1 /Page 2
After this presentation, you will be able to:<br />
Use several EXPLAIN commands to analyze SQL queries<br />
Understand and interpret the EXPLAIN output<br />
Understand the usage of SQL strategies of the single table optimizer<br />
© <strong>SAP</strong> 20102/<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 3
Goals of Optimization<br />
Goal: Minimizing resource-consumption like<br />
CPU-time<br />
I/O-load<br />
Memory<br />
Disk space<br />
SQL Commands affected by optimization<br />
SELECT<br />
UPDATE<br />
DELETE<br />
INSERT/SELECT<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 4
Cost-based Optimizer<br />
Cost-based optimizer<br />
Search strategy is determined via<br />
– current column content (values)<br />
– available indexes<br />
– estimated count of (page) accesses<br />
‚Lowest cost‘ strategy will be used.<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 5
Which condition will be evaluated ?<br />
Single table SELECT<br />
Column = value<br />
Column value<br />
Column BETWEEN value AND value<br />
Column IN ( value, value, ... )<br />
Column LIKE string value (including %,?,...)<br />
Column = (ANY) <br />
Column IN <br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 6
Introduction into SQL Optimization<br />
SELECT * FROM zztele WHERE STR = ‚Wexstr‘<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 7
Primary and Secondary keys (indexes)<br />
Primary key<br />
The primary key is stored in the data tree (clustered)<br />
No separate tree for primary key !<br />
Parts of the primary keys are used as separator in B*trees<br />
The records are stored in primary key order<br />
Secondary key (index)<br />
Construction of a separate B*tree for the secondary key values<br />
A secondary key does not contain physical addresses pointing to the base data but<br />
logical addresses in terms of primary keys<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 8
Table Examples: ZZTELE<br />
# of records: around 115,000<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 9<br />
:<br />
Create Table ZZTELE<br />
( NAME CHAR(40),<br />
VORNAME CHAR(20),<br />
STR CHAR(40),<br />
NR INT,<br />
PLZ CHAR(5),<br />
ORT CHAR(25),<br />
CODE CHAR(31),<br />
ADDINFO CHAR(31),<br />
PRIMARY KEY<br />
(NAME,VORNAME,STR) )
Table Examples: ZZSTADTTEIL , ZZMASTER<br />
around 20,000<br />
records<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 10<br />
Create Table ZZSTADTTEIL<br />
( PLZ CHAR(5),<br />
ORT CHAR(25),<br />
STADTTEIL CHAR(40),<br />
PRIMARY KEY<br />
(PLZ) )<br />
Create Table ZZMASTER<br />
( YEAR INT,<br />
NAME CHAR(40),<br />
VORNAME CHAR(20),<br />
UNI CHAR (40),<br />
ORT CHAR (25),<br />
PRIMARY KEY<br />
(YEAR,NAME,VORNAME) )<br />
10 records
Indexes created on table ZZTELE<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 11
Storing data in a B*tree<br />
Root Level<br />
Page<br />
Root node (Root) of table ZZTELE<br />
8 KByte D S U ....<br />
Level 1<br />
Pages<br />
Leaf Level<br />
Pages<br />
Base data as well as index data (secondary key) is stored in B*tree structures.<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 12<br />
Brau Caes Dart Pete... Ste...<br />
Aaron Anton<br />
Steig 5<br />
...<br />
Brauner E.<br />
Ilseweg 11 ...<br />
Caesar<br />
S.Gartenweg 5
Information used by Optimization<br />
SELECT ... FROM tab1 WHERE tab1.col1 = 'Walldorf'<br />
Parse Statement<br />
Best Access Path<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 13<br />
Final Strategy Execution<br />
DDL Information<br />
Value Evaluation
Explain (1)<br />
Input : EXPLAIN <br />
Output : Description of search strategy<br />
EXPLAIN is used with SELECT commands that access tables and views<br />
EXPLAIN does not execute the specified SELECT command.<br />
The explain command cannot be used with<br />
UPDATE, DELETE or INSERT commands<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 14
Explain (2)<br />
SCHEMANAME<br />
Schema Table 1<br />
Schema Table 2<br />
TABLENAME COLUMN_OR_INDEX STRATEGY PAGECOUNT<br />
Result<br />
name<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 15<br />
Names of key or<br />
index columns<br />
Names of key or<br />
index columns<br />
Name of chosen strategy<br />
for this table<br />
Name of chosen strategy<br />
for this table<br />
RESULT IS (NOT)<br />
COPIED, COSTVALUE IS<br />
Number of pages<br />
In system table<br />
Optimizerstatistics<br />
Number of pages<br />
in system table<br />
Optimizerstatistics<br />
Estimated<br />
costs<br />
Applied<br />
Query Rewrite rules 1
Query Rewrite<br />
Query Rewrite rebuilds SQL statements by the use of rules to enable the optimizer<br />
to find the best strategy.<br />
Example: ConvertOrToIn<br />
select * from zztele<br />
where PLZ = '10967' or PLZ = '15099' or PLZ = '12047'<br />
SELECT "NAME", "VORNAME", "STR", "NR",<br />
"PLZ", "ORT", "CODE", "ADDINFO"<br />
FROM "<strong>SAP</strong>R3"."ZZTELE" AS "_T1“<br />
WHERE PLZ in ('10967' , '15099' , '12047' )<br />
Parameter: EnableQueryRewrite=YES, QueryAnalysisMode=EXTENDED<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 16
Query Rewrite Rules<br />
Changing the column ACTIVE in the view QUERYREWRITERULES effects if a rule<br />
is switched on or off.<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 17
Monitoring Query Rewrite<br />
EXPLAIN QUERYREWRITE shows the result of Query Rewrite as SQL statement.<br />
The view MONITOR indicates how often rules were applied.<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 18
Explain (3)<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 19
Explain Queryrewrite<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 20
Search Condition and Search Strategies (1)<br />
SELECT VORNAME,NAME,PLZ,ORT,STR,ADDINFO<br />
FROM ZZTELE<br />
WHERE ADDINFO LIKE 'Training%'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 21<br />
Search Strategy
Index and Table<br />
Index<br />
ZZTELE~3<br />
SELECT VORNAME,NAME,PLZ,ORT,STR,ADDINFO<br />
FROM ZZTELE<br />
WHERE PLZ = '10967'<br />
10967<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 22<br />
Secondary Key Primary Key List<br />
Aimonsri Kano...Dummy Diel...<br />
Index List<br />
Aimonsri Kanopkon Dummy1<br />
:<br />
Dielschn Korina Dummy4<br />
10967 Berlin Fiance<br />
Primary Key Fieldvalues<br />
A 1<br />
Base Record<br />
10967 Berlin IBU Pub<br />
Base Table<br />
ZZTELE
EQUAL CONDITION FOR KEY<br />
SELECT * FROM zztele<br />
WHERE Name = 'Aaron'<br />
AND Vorname = 'Anton'<br />
AND Str = 'Alt Moabit'<br />
Key Value =<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 23<br />
Base Table
EQUAL CONDITION FOR KEY - Example<br />
SELECT * FROM zztele<br />
WHERE Name = 'Aaron'<br />
AND Vorname = 'Anton'<br />
AND Str = 'Alt Moabit'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 24
RANGE CONDITION FOR KEY<br />
SELECT * FROM zztele WHERE Name = 'Schmidt'<br />
AND Vorname like 'A%'<br />
SELECT * FROM zztele<br />
STARTKEY<br />
CONDITION(S) TABLE SCAN RANGE<br />
STOPKEY<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 25<br />
Base Table
RANGE CONDITION FOR KEY - Example<br />
SELECT * FROM zztele WHERE Name = 'Schmidt'<br />
AND Vorname like 'A%‘<br />
SELECT * FROM zztele<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 26
IN CONDITION FOR KEY<br />
SELECT * FROM zztele<br />
WHERE Name IN ('Mueller', 'Schmidt')<br />
Key Value 1<br />
Key Value 2<br />
'Mueller'<br />
'Schmidt'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 27<br />
Base Table<br />
RANGE Cond for In
IN CONDITION FOR KEY - Example<br />
SELECT * FROM zztele<br />
WHERE Name IN ('Mueller', 'Schmidt')<br />
SELECT * FROM zztele<br />
WHERE Name IN ('Scheu', 'Schmidt')<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 28
EQUAL CONDITION FOR INDEX<br />
CREATE INDEX "ZZTELE~3" ON ZZTELE(PLZ)<br />
SELECT * FROM zztele<br />
WHERE plz = ‘12345'<br />
Single<br />
Index<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 29<br />
Index List<br />
12345<br />
primary key list<br />
Base Table
EQUAL CONDITION FOR INDEX - Example<br />
CREATE INDEX "ZZTELE~3" ON ZZTELE(PLZ)<br />
SELECT * FROM zztele<br />
WHERE plz = '12345'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 30
RANGE CONDITION FOR INDEX<br />
CREATE INDEX "ZZTELE~3" ON ZZTELE(PLZ)<br />
SELECT * FROM zztele<br />
WHERE plz BETWEEN '10100' AND '10967'<br />
Index<br />
SCAN<br />
RANGE<br />
Index<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 31<br />
Index List<br />
Index List<br />
primary key list<br />
primary key list<br />
Base Table
RANGE CONDITION FOR INDEX - Example<br />
CREATE INDEX "ZZTELE~3" ON ZZTELE(PLZ)<br />
SELECT * FROM zztele<br />
WHERE plz BETWEEN '10100' AND '10967'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 32
IN CONDITION FOR INDEX<br />
CREATE INDEX "ZZTELE~2" ON ZZTELE ( STR, NR )<br />
SELECT * FROM zztele<br />
WHERE str = 'Wexstr' AND nr IN (3, 255)<br />
Multiple<br />
Index<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 33<br />
Index List<br />
3<br />
Index List<br />
255<br />
primary key list<br />
primary key list<br />
Base Table
IN CONDITION FOR INDEX - Example<br />
CREATE INDEX "ZZTELE~2" ON ZZTELE ( STR, NR )<br />
SELECT * FROM zztele<br />
WHERE str = 'Wexstr' AND nr IN (3, 255)<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 34
Properties which influence the Optimizer<br />
Only Index<br />
Create intermediate result Yes / NO ( e.g. order by)<br />
Min / Max Optimization<br />
Distinct<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 35
ONLY INDEX ACCESSED<br />
Index<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 36<br />
Secondary Key Primary Key List<br />
plz name<br />
12345 Antoa Dry Huebel Marek ...<br />
SELECT name, plz<br />
FROM zztele<br />
WHERE plz = '12345'<br />
Base Table
ONLY INDEX ACCESSED - Example<br />
SELECT name, plz<br />
FROM zztele<br />
WHERE plz = '12345'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 37
ORDER BY Index column(s)<br />
CREATE INDEX "ZZTELE~2" ON zztele ( str, nr )<br />
SELECT * FROM zztele WHERE name BETWEEN 'A' and 'T'<br />
ORDER BY str, nr<br />
Index<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 38<br />
Index List<br />
Index List<br />
primary key list<br />
primary key list<br />
Base Table
ORDER BY Index column(s) - Example<br />
SELECT * FROM zztele WHERE name<br />
BETWEEN 'A' and 'T'<br />
ORDER BY str, nr<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 39
ORDER BY key column(s)<br />
CREATE INDEX "ZZTELE~2" ON ZZTELE ( STR, NR )<br />
SELECT * FROM zztele<br />
WHERE str = 'Wexstr' AND nr BETWEEN 20 AND 23<br />
ORDER BY name, vorname, str<br />
Single<br />
Index<br />
20<br />
Index List<br />
22<br />
Kernel parameter: IndexlistsMergeThreshold<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 40<br />
primary key list<br />
primary key list<br />
Index List<br />
23<br />
primary key list<br />
Merged<br />
List<br />
Base Table
ORDER BY key column(s) - Example<br />
SELECT * FROM zztele<br />
WHERE str = 'Wexstr' AND nr<br />
BETWEEN 20 AND 23<br />
ORDER BY name, vorname, str<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 41
MIN/MAX Optimization - Example<br />
CREATE INDEX "ZZTELE~2" ON zztele ( str, nr )<br />
SELECT MAX (nr)<br />
FROM zztele<br />
WHERE str = 'Wexstr'<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 42
DISTINCT Optimization - Example<br />
CREATE INDEX "ZZTELE~1" ON zztele ( ort, str )<br />
select distinct (ort)<br />
from zztele<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 43
NO STRATEGY NOW (ONLY AT EXECUTION<br />
TIME)<br />
Strategy will be determined first during execution of the command<br />
This is valid for queries if the access path will be determined first when they are<br />
executed.<br />
Usually this output is used for queries containing sub-queries or correlated subqueries:<br />
strategy will first be determined when interim results become available.<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 44
SUBQUERY allows CONDITION FOR KEY<br />
SELECT * FROM zztele<br />
WHERE name IN (SELECT name FROM zzmaster WHERE year = 2000)<br />
Internal<br />
Subquery File<br />
Key Value 1<br />
Key Value 2<br />
Key Value 3<br />
Key Value 4<br />
Key Value 5<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 45<br />
‘Aimonsri'<br />
Base Table
SUBQUERY – Example (1)<br />
EXPLAIN SELECT * FROM zztele<br />
WHERE name IN<br />
(SELECT name FROM zzmaster<br />
WHERE year = 2000)<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 46
SUBQUERY allows CONDITION FOR INDEX<br />
CREATE INDEX "ZZTELE~3" ON ZZTELE(PLZ)<br />
SELECT * FROM zztele WHERE plz IN<br />
(SELECT plz FROM zzstadtteil WHERE stadtteil = 'Kreuzberg' )<br />
Internal<br />
Subquery<br />
File<br />
Value 1<br />
Value 1<br />
Value 1<br />
Value 2<br />
Value 3<br />
Value 3<br />
Value 4<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 47<br />
Single<br />
Index<br />
Index List<br />
val 1<br />
Index List<br />
val 3<br />
primary key list<br />
primary key list<br />
Base Table
SUBQUERY – Example (2)<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 48<br />
CREATE INDEX "ZZTELE~3" ON ZZTELE(PLZ)<br />
SELECT * FROM zztele<br />
WHERE plz IN<br />
(SELECT plz FROM zzstadtteil<br />
WHERE stadtteil = 'Kreuzberg' )
Nice to know<br />
SELECT plz FROM zzstadtteil WHERE stadtteil like ‚%berg'<br />
SELECT * FROM zzmaster WHERE vorname = 'Lars'<br />
SELECT * FROM zztele<br />
WHERE name IN ('Aimonsri', 'Hofmann', 'Lueck', 'MORONI', 'Reijer')<br />
AND vorname IN ( 'Jan', 'Walter')<br />
SELECT * FROM zzmaster<br />
WHERE year + 1 = 2001<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 49<br />
SELECT * FROM zzmaster<br />
WHERE year = 2001 - 1
© <strong>SAP</strong> AG 2009. All rights reserved. / Page 50<br />
Questions and Answers
Thank You!<br />
Bye, Bye – And Remember Next Session<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 51<br />
Feedback and further information:<br />
http://www.sdn.sap.com/irj/sdn/maxdb<br />
Next Session: 29.08.2012<br />
<strong>SAP</strong>® <strong>MaxDB</strong> SQL Query Optimization - Part 2
Disclaimer<br />
This presentation reflects current planning.<br />
© <strong>SAP</strong> 2012 /<strong>MaxDB</strong> 7.8 Expert Session – Optimizer Part 1/Page 52<br />
Contents may be changed<br />
without prior notice, and are in no way<br />
binding upon <strong>SAP</strong>.
© Copyright 2012 <strong>SAP</strong> AG<br />
All Rights Reserved<br />
No part of this publication may be reproduced or transmitted in any form or for any purpose without the express permission of <strong>SAP</strong> AG. The information contained herein<br />
may be changed without prior notice.<br />
Some software products marketed by <strong>SAP</strong> AG and its distributors contain proprietary software components of other software vendors.<br />
Microsoft, Windows, Excel, Outlook, and PowerPoint are registered trademarks of Microsoft Corporation.<br />
IBM, DB2, DB2 Universal Database, System i, System i5, System p, System p5, System x, System z, System z10, System z9, z10, z9, iSeries, pSeries, xSeries, zSeries,<br />
eServer, z/VM, z/OS, i5/OS, S/390, OS/390, OS/400, AS/400, S/390 Parallel Enterprise Server, PowerVM, Power Architecture, POWER6+, POWER6, POWER5+,<br />
POWER5, POWER, OpenPower, PowerPC, BatchPipes, BladeCenter, System Storage, GPFS, HACMP, RETAIN, DB2 Connect, RACF, Redbooks, OS/2, Parallel Sysplex,<br />
MVS/ESA, AIX, Intelligent Miner, WebSphere, Netfinity, Tivoli and Informix are trademarks or registered trademarks of IBM Corporation.<br />
Linux is the registered trademark of Linus Torvalds in the U.S. and other countries.<br />
Adobe, the Adobe logo, Acrobat, Post<strong>Script</strong>, and Reader are either trademarks or registered trademarks of Adobe Systems Incorporated in the United States and/or other<br />
countries.<br />
Oracle is a registered trademark of Oracle Corporation.<br />
UNIX, X/Open, OSF/1, and Motif are registered trademarks of the Open Group.<br />
Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, and MultiWin are trademarks or registered trademarks of Citrix Systems, Inc.<br />
HTML, XML, XHTML and W3C are trademarks or registered trademarks of W3C®, World Wide Web Consortium, Massachusetts Institute of Technology.<br />
Java is a registered trademark of Sun Microsystems, Inc.<br />
Java<strong>Script</strong> is a registered trademark of Sun Microsystems, Inc., used under license for technology invented and implemented by Netscape.<br />
<strong>SAP</strong>, R/3, <strong>SAP</strong> NetWeaver, Duet, PartnerEdge, ByDesign, <strong>SAP</strong> Business ByDesign, and other <strong>SAP</strong> products and services mentioned herein as well as their respective<br />
logos are trademarks or registered trademarks of <strong>SAP</strong> AG in Germany and other countries.<br />
Business Objects and the Business Objects logo, BusinessObjects, Crystal Reports, Crystal Decisions, Web Intelligence, Xcelsius, and other Business Objects products and<br />
services mentioned herein as well as their respective logos are trademarks or registered trademarks of Business Objects S.A. in the United States and in other countries.<br />
Business Objects is an <strong>SAP</strong> company.<br />
All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only.<br />
National product specifications may vary.<br />
These materials are subject to change without notice. These materials are provided by <strong>SAP</strong> AG and its affiliated companies ("<strong>SAP</strong> Group") for informational purposes only,<br />
without representation or warranty of any kind, and <strong>SAP</strong> Group shall not be liable for errors or omissions with respect to the materials. The only warranties for <strong>SAP</strong> Group<br />
products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed<br />
as constituting an additional warrant.<br />
© <strong>SAP</strong> 2012 <strong>SAP</strong> <strong>MaxDB</strong> Expert Session – Optimizer (Part 1)53