第一次打开PLSQL Developer时,那个全英文界面确实让人有点懵。记得我刚接触Oracle开发时,光是配置客户端就折腾了大半天。下面这些实战经验,能帮你少走很多弯路。
Oracle Instant Client是必须的,就像手机需要SIM卡才能通话一样。建议选择12.2.0.1.0版本,这个版本对多数Oracle数据库兼容性最好。解压时要注意路径不要有中文或空格,我习惯放在C:\Oracle\instantclient_12_2这样的目录下。配置OCI库时,很多新手会漏掉oci.dll文件的完整路径,这里必须精确到文件名,比如C:\Oracle\instantclient_12_2\oci.dll。
语言包配置有个小技巧:如果安装包自带中文语言,直接运行chinese.exe;如果没有,可以去官网下载语言包。我遇到过语言包版本不匹配的情况,这时候在Preferences→User Interface→Appearance里切换回英文再重试就好了。配置完成后记得完全退出程序再重新启动,有时候简单的重启并不能加载新设置。
字体和配色对长时间编码太重要了。我推荐Consolas字体配合浅色背景,字号设置在10-12之间最舒适。在Preferences→User Interface→Fonts里,可以分别设置编辑器字体和表格字体。有个细节:SQL Window和Command Window的字体是分开设置的,记得都要调整。
代码提示功能一定要开启,这能提升30%以上的编码效率。在Code Assistant设置里,把自动激活阈值设为2个字符,这样输入"se"就会提示"SELECT"。我还喜欢自定义提示内容,比如把"sel"设为"SELECT * FROM ",写查询时特别省事。
快捷键配置是我的秘密武器。把常用操作如新建SQL窗口(Ctrl+Shift+S)、执行计划(F5)、格式化代码(Ctrl+Shift+F)设成顺手的位置。特别注意慎用清除快捷键(Ctrl+D),我有次不小心清空了写了两小时的脚本,现在直接把这个快捷键禁用了。
连接数据库时最常见的问题就是中文乱码。除了设置NLS_LANG环境变量,还要检查注册表中NLS_LANG的值。我常用的配置是SIMPLIFIED CHINESE_CHINA.ZHS16GBK。如果还是乱码,可以尝试在PLSQL里执行:ALTER SESSION SET NLS_LANGUAGE='SIMPLIFIED CHINESE'。
执行计划分析是SQL调优的利器。选中SQL按F5后,重点看Cost值和访问路径。全表扫描(TABLE ACCESS FULL)通常是性能瓶颈,这时候就要考虑加索引了。我习惯把执行计划窗口固定在界面底部,方便随时查看。
数据导入导出有几种方式:Oracle Export生成.dmp二进制文件最适合大数据量迁移;SQL Insert导出为.sql文件方便查看修改;PL/SQL Developer的.pde格式适合小型数据交换。导出表结构时,记得勾选"Storage"选项,这样会包含表空间等完整信息。
模板功能可以极大提升编码效率。在Preferences→Editor→AutoReplace里配置快捷缩写,比如"sfu"自动展开为"SELECT * FROM FOR UPDATE"。我把自己常用的20多个模板都放在一个txt文件里,重装软件时直接导入就行。
会话监控是个实用功能。通过Tools→Sessions可以查看当前连接的所有会话,发现锁表或长事务时特别有用。我经常用这个功能找出性能问题的SQL,然后右键直接跳转到执行计划分析。
PL/SQL调试器是处理存储过程的利器。设置断点、单步执行、查看变量值这些功能都有。调试前记得用右键菜单编译带调试信息的版本,否则无法进入断点。调试复杂过程时,我习惯把调用栈窗口固定在右侧,随时跟踪执行流程。
数据库对象比较工具(Tools→Compare User Objects)可以快速找出开发环境和生产环境的差异。我每周都会用这个工具做一次同步检查,避免遗漏任何修改。比较结果可以导出为HTML报告,方便团队讨论。