=====Oracle SQL Developer - Tipps und Tricks ===== **Wie mit diesem Tool arbeiten - Performance Optimierung** An dem Oracle SQL Developer scheiden sich die Geister .... aber einem geschenkten Gaul schaut man nicht ins Maul ... Es kann sich halt nicht jede Firma einen TOAD leisten und den Feature Set kann der Oracle SQL Developer im Prinzip durchaus überzeugen. Wenn er nur nicht so langsam wäre und so einen unscharfen Editor hätte .. nativ Java sagen da die einen, das ist halt so unter Windows sagen die anderen, anderseits zeigt der "Visual Studio Code" Editor das es auch ganz anders und vor allen viel schneller geht! Was mich persönlich am meisten nervt ist der fehlende "/" am Ende eines PL/SQL Packages, wenn es direkt aus der DB als Datei gespeichert wird. Herunterladen über https://www.oracle.com/tools/downloads/sqldev-downloads.html ---- ==== PLS/SQL - ‘Quick Outline' - Codemodellstruktur ==== Von den Funktionen kann der SQL*Developer immer wieder mal überzeugen .. wenn man es nur findet. Da ich immer bei der Entwicklung der PL/SQL Objekte einer Anwendung darauf achte, nur mit den dann später auch in GIT eingecheckten Dateien zu arbeiten, wäre es ja praktisch eine Navigationshilfe zu haben, um direkt zu jeweilen Methode in der Datei springen zu können. In meiner eigenen Umgebung installieren ich meist alles in Englisch, die Menüpunkte sind meist schwer in der deutschen Übersetzung zu finden. In einer Kundenumgebung ist das aber oft nicht möglich. So wird aus "Quick Outline" ein "Codemodellstruktur", zu finden im Context Menü (rechte Maustaste) des Editors. Siehe auch => https://www.thatjeffsmith.com/archive/2012/11/quick-outline-navigating-your-plsql-packages-in-oracle-sql-developer/ === Problem mit 20.4 === Problem: "set hidden param parseThreshold" Fehlermeldung bei längeren PL/SQL Packages: {{ :prog:oracle_sqldeveloper_parsethreshod_error.png | Oracle SQLDeveloper 20.4 set hidden param parseThreshold}} Einstellung der Session ändern mit: set hidden param parseThreshold = 45000; Nur wo einstellen? Per Script beim Aufruf, Script anlegen wie H:\mySQLDeveloperSettings.sql mit obigen Setting. Beim Start ausführen lassen mit folgender Einstellung: {{ :prod:oracle_sqldeveloper_startup_skript_einbinden.png | Oracle SQLDeveloper Startup Skript einbinden}} siehe auch => https://www.salvis.com/blog/2020/10/10/navigation-in-large-pl-sql-code/ ---- ==== Performance optimieren ==== Immer die neueste Version verwenden! Update über https://www.oracle.com/downloads/ ===Java Start Verhalten optimieren=== Dateil: $sqldeveloper_home\ide\bin\ide.conf #OS RAM 8-16GB: # The options for 32-bit Java VM's Add32VMOption -Xmx2048M Add32VMOption -Xmx2048M # The options for 64-bit Java VM's Add64VMOption -Xms1024M Add64VMOption -Xmx2048M # The options for 32-bit Java VM's Add32VMOption -Xms2048M Add32VMOption -Xmx4096M # The options for 64-bit Java VM's Add64VMOption -Xms2048M Add64VMOption -Xmx4096M ##---------- # Increase MaxPermSize AddVMOption -XX:MaxPermSize=1024M # Memory Monitor AddVMOption -DMainWindow.MemoryMonitorOn=true # Optimize Strings and Text AddVMOption -XX:+UseStringCache AddVMOption -XX:+OptimizeStringConcat AddVMOption -XX:+UseCompressedStrings # 64 Bit System and 16GB RAM or Less (Reduce Object Pointer Memory Size) AddVMOption -XX:+UseCompressedOops # Aggressive Garbage Collection AddVMOption -XX:+AggressiveOpts # Multi Core Machines AddVMOption -XX:+UseConcMarkSweepGC AddVMOption -DVFS_ENABLE=true AddVMOption -Dsun.java2d.ddoffscreen=false AddVMOption -XX:+UseParNewGC AddVMOption -XX:+CMSIncrementalMode AddVMOption -XX:+CMSIncrementalPacing AddVMOption -XX:CMSIncrementalDutyCycleMin=0 AddVMOption -XX:CMSIncrementalDutyCycle=10 Siehe auch => https://www.blogofant.de/en/education/database/tune-sql-developer-make-sql-developer-faster/ ---- === Unnötiges ausschalten === Siehe ⇒ https://www.thatjeffsmith.com/archive/2016/03/make-sql-developer-run-faster/ ---- === Start sehr langsam === siehe => https://community.oracle.com/tech/developers/discussion/4479330/sql-developer-20-2-indexpreferencestask-very-slow # IndexPreferencesTask very slow disable AddVMOption -DIndexedPreferencesCommand=false * Welcome Seite Mit Hacken ganz untern auf dieser Seite ausschalten! ---- ==== Auf OCI Treiber umstellen - External Authentifizierung verwenden ==== Es kann auch direkt mit der OCI Thick Driver Lib gearbeitet werden. Das ist auch Voraussetzung für die Verwendung von Kerberos bzw. OS Authentifizierung im SQL Developer! Achtung! => mit Version 22.2 muss ein 21c Client verwendet werden! Ablauf: * Instantclient Packet Basis + JDBC herunterladen von https://www.oracle.com/database/technologies/instant-client/winx64-64-downloads.html * Bei Bedarf gleich auch die Tools wie SQL*Plus und Loader mit hinzunehmen * Zips alle in ein Verzeichnis wie "H:\tools\instantclient_19_9" auspacken * Bei Bedarf unter dem Ordner für die tnsnames.ora einen Ordner .\network\admin anlegen * tnsnames.ora / sqlnet.ora dort ablegen * TNS_ADMIN Umgebungsvariable auf diesen Ordner zeigen lassen * Betriebssystem Pfad Variable so anpassen, dass der Instantclient Pfad H:\tools\instantclient_19_9 an erster Stelle steht * SQLDeveloper starten * Zu Not über ein Skript; damit der Pfad auch immer richtig gesetzt wird set PATH=H:\tools\instantclient_19_9 H:\tools\sqldeveloper\sqldeveloper.exe * Unter Einstellungen nach OCI suchen und dort den Speicherort des Instantclient hinterlegen und testen. * {{ :prod:oracle_sqldeveloper_oci_thin_client_setting.png | Oracle SQL Developer OCI Client Settings}} Zum Instant Client siehe auch auch => [[dba:oracle_sqlldr_instant_client12c|Oracle SQL*LDR - Auf dem Clientarbeitsplatz Windows 10 mit dem Instant Client 19 verwenden]] === Problem mit External / OS Authentifizierung im SQL Developer === Wichtig! Keine Usernamen und kein Passwort angeben! {{ :prod:oracle_sqldeveloper_connect_external_os_authentifizierung.png |Oracle SQL Developer Connect External / OS }} Wird der Pfad zur OCI Lib nicht gefunden kommt es nur zur Trivialen Fehlermeldung "Status: Nicht erfolgreich -Test nicht erfolgreich: ORA-01017: invalid username/password; logon denied" ohne weitere Hinweise.. Dann in Einstellungen ( siehe Screenshot) testen ob die OCI Lib geladen werden kann! ---- ==== UTF8 als Default für das Speichern von neuen Dateien einstellen ===== UTF8 als Default für das Speichern von neuen Dateien einstellen - Einstellung ist unter Tools > Preferences > Files / Format: {{ :prod:sqldeveloper_utf8_default_fuer_dateien.png?600 | UTF8 als Default für das Speichern von neuen Dateien einstellen }} ----