Mythen und Wahrheit Über PL/SQL Native Compile DOAG- Konferenz 2009 1 Mythen und Wahrheit über PL/SQL Native Compile Robert Marz Technical Architect its-people Hochtaunus GmbH [email protected] www.its-people.de DOAG- Konferenz 2009 2 its-people – Experten für IT-Projekte its-people ist ein unternehmerisch organisierter und geführter Verbund von selbständigen und erfahrenen IT-Beratern its-people ist versierter Anbieter von technologienahen Dienstleistungen: Oracle, SAP, BI und IT-Management Services, … its-people bietet seine Dienstleistungen bundesweit und flächendeckend an und orientiert sich dabei an den Bedürfnissen der Kunden its-people ist in den Wirtschaftsräumen Rhein-Main, NordrheinWestfalen, München, Hamburg und Wolfsburg vertreten und umfasst ca. 180 Berater www.its-people.de DOAG- Konferenz 2009 3 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 4 Motivation DOAG- Konferenz 2009 5 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 6 Mythos 1: Voraussetzungen Ohne C-Compiler geht es nicht. DOAG- Konferenz 2009 7 Mythos 1: Voraussetzungen Ohne C-Compiler geht es nicht. (wahr bis Oracle 11g) DOAG- Konferenz 2009 8 Mythos 1: Voraussetzungen Linux: gcc gehört bei den meisten Linux-Distributionen zum Lieferumfang Wenn er fehlt (cc auf der Komandozeile schlägt fehl), ist er über das Paketmanagement nachzuinstallieren Für die RDBMS Releases 10g und 11g unter Linux hat Oracle die Versionen 3.4 und 4.1 der gcc zertifiziert DOAG- Konferenz 2009 9 Mythos 1: Voraussetzungen Windows: Bei Microsoft gehört für gewöhnlich kein Compiler zum Lieferumfang. Für 10gR2 hat Oracle die Versionen „Microsoft Visual C++ .NET 2002 7.0“ und „Microsoft Visual C++ .NET 2003 7.1“ zertifiziert. Für 11gR1 kommt noch die 2005er Version hinzu. DOAG- Konferenz 2009 10 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 11 Mythos 2: Komplexität Folgende Parameter beeinflussen die Übersetzung von PL/SQL: plsql_v2_compatibility plsql_compiler_flags plsql_native_library_dir plsql_native_library_subdir_count plsql_warnings plsql_code_type plsql_debug plsql_optimize_level plsql_ccflags DOAG- Konferenz 2009 12 Mythos 2: Komplexität Für native compile muss nur einer davon gesetzt sein: plsql_v2_compatibility plsql_compiler_flags plsql_native_library_dir plsql_native_library_subdir_count plsql_warnings plsql_code_type plsql_debug plsql_optimize_level plsql_ccflags DOAG- Konferenz 2009 13 Mythos 2: Komplexität Für native compile muss nur einer davon gesetzt sein: DOAG- Konferenz 2009 14 Mythos 2: Komplexität Für ab 11g entfällt auch das. Lediglich der plsql_optimize_level muss mindestens den Wert 2 haben (das ist die Defaulteinstellung) DOAG- Konferenz 2009 15 Mythos 2: Komplexität Der Modus der Übersetzung lässt sich festlegen: Durch einen Session Parameter Durch einen Systemweiten Parameter festlegen Direkt beim kompilieren mit angeben Letzteres ist am einfachsten: DOAG- Konferenz 2009 16 Mythos 2: Komplexität Live: natives Übersetzen von PL/SQL ist einfach DOAG- Konferenz 2009 17 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 18 Mythos 3: Sicherheit die erzeugten shared libraries liegen in einem externen Verzeichnis und könnten manipuliert werden. ein potentieller benötigt Angreifer dazu Zugriff auf das Betriebssystem des Datenbankserver mit den gleichen Berechtigungen, die ihm auch das Manipulieren der Oracle-Binaries ermöglichen würde. DOAG- Konferenz 2009 19 Mythos 3: Sicherheit Seit Oracle 10g werden die Libraries als BLOB in der Tabelle sys.ncomp_dll$ gespeichert. Das ermöglicht ein Backup via RMAN und verteilen an StandbyDatenbanken Beim Startup der Datenbank werden evtl. fehlende dlls im Betriebssystem mit den BLOBs aus dieser Tabelle einfach ersetzt. DOAG- Konferenz 2009 20 Mythos 3: Sicherheit Die Libraries sind gescrambeld – Zeichenketten lassen sich nicht extrahieren DOAG- Konferenz 2009 21 Mythos 3: Sicherheit Live: Sicherheit bei native compile DOAG- Konferenz 2009 22 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 23 Mythos 4: Catalog kompilieren Das ist kein Mythos, sondern fällt in die Rubrik Wahrheit. Wenn plsql_code_type systemweit auf native gesetzt wird, wird jedes Stück PL/SQL beim nächsten Übersetzen nativ übersetzt. Das gilt auch für die Packages des Schema sys ABER: Vermutlich gibt es einen Grund, worum Oracle dies nicht als Voreinstellung wählt. DOAG- Konferenz 2009 24 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 25 Mythos 5: Geschwindigkeit Durch das native Übersetzen von PL/SQL wird der Datenbankteil jeder Anwendung signifikant beschleunigt. DOAG- Konferenz 2009 26 Mythos 5: Geschwindigkeit DOAG- Konferenz 2009 27 Mythos 5: Geschwindigkeit Tatsächlich kann reines PL/SQL um den Faktor zwei beschleunigt werden SQL-Abfragen profitieren natürlich nicht von der nativen Übersetzung Kontext-Wechsel zwischen SQL und PL/SQL können den Geschwindigkeitsvorteil beinahe komplett aufzehren DOAG- Konferenz 2009 28 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 30 Fazit Vor nativer Übersetzung von PL/SQL-Code braucht niemand Angst zu haben. Es ist einfach – ab Oracle 11g braucht man nicht mal mehr einen CCompiler Anwendungen werden beschleunigt Der tatsächliche Geschwindigkeitsgewinn hängt von vielen Faktoren ab. DOAG- Konferenz 2009 31 Agenda Motivation Mythos 1: Die Voraussetzungen sind schwer herzustellen Mythos 2: Nativ zu übersetzen ist kompliziert Mythos 3: Externe Libraries sind unsicher Mythos 4: Ich kann den ganzen Catalog nativ übersetzen. Mythos 5: Alles wird schneller Fazit Fragen und Antworten DOAG- Konferenz 2009 32 Vielen Dank! DOAG- Konferenz 2009 33 FRAGEN A N TWORTEN DOAG- Konferenz 2009 34