Oracle 11g 的数据库玩法,真的是越用越有味道。最开始装环境的时候,确实有点折腾——服务端要建库、配监听,客户端又得搞个PL/SQL Developer
啥的。但搞定后,操作起来还是挺顺的。
Oracle 的内存结构也挺讲究,SGA、PGA、UGA几个概念一开始容易混,其实就记住:SGA是一起用的,PGA和UGA是各玩各的,运行过程中能省不少内存。
再说表空间这块,感觉像是给数据打包分区,一个项目一个表空间,后期维护方便多了。你还可以自己指定数据文件放在哪个盘,合理分布,效率也跟着上来了。
SQL 语法就不用多说了,日常INSERT
、UPDATE
、SELECT
都得用,进阶的PL/SQL
也别怕,写个存储过程其实不难。比如:
BEGIN
UPDATE users SET status = 'active' WHERE last_login > SYSDATE - 30;
END;
索引真的是调性能的关键,普通查询可以建个 B 树索引,要是做报表统计那种,位图索引更适合,尤其数据重复度高的时候。乱建可不行,得常监控,不然越查越慢。
权限这块也值得说说,别图省事就GRANT ALL
,按需分配才安全。Oracle 支持审计和日志,想查谁动了什么都有记录,配合网络加密,用起来还是挺放心的。
说到备份,RMAN
是神器级的工具,结合归档日志,不管是误删数据还是系统崩了,都能救回来。你也可以配合闪回查询
用,简直是数据库的时光机。
SQL 优化方面,推荐你试试SQL Tuning Advisor
,一键执行计划,再配合AWR
报告,问题基本都能定位出来。优化完,响应速度能快好几倍。
如果你数据库压力大,别忘了用并行执行,Oracle 的 PX 机制挺智能,能把大查询分段跑,CPU 利用率瞬间上来。
数据仓库功能也还不错,建个星型模型加点物化视图
,做 OLAP 挺顺手。报表加载速度能快不少。
高可用的话,Oracle RAC是真香,多节点共享数据库,一节点挂了还能继续跑。虽然部署略麻烦,但上线后的容灾能力确实强。
提一下分区表,数据一多就靠它分段,按日期或地区分区都行,查询的时候也不用扫全表,性能提升肉眼可见。
如果你正好在搞 Oracle,不妨对着这些点挨个研究下,尤其是 RMAN、分区、RAC 这几块,后期维护的时候管用。