IT技术博客大学习 共学习 共进步
全部 移动开发 后端 数据库 AI 算法 安全 DevOps 前端 设计 开发者
首页 / OS与Oracle
IT 2013-06-09 13:16:28 / 累计浏览 3,020

PL/SQL的那些事儿

这篇讲的是PL/SQL在Oracle数据库中的正确使用姿势,作者通过对比两种常见场景,点明了优化的核心。 文章清晰地划分了PL/SQL的两类使用场景:一类是作为“胶水”,串联一系列SQL分析语句,性能瓶颈主要在SQL引擎;另一类是用游标逐行处理数据,进行过程化计算。作者指出一个关键现象:即便优化后者,性能提升也有限;但若将其重写为前者纯SQL驱动的模式,性能常能获得成百上千倍的提升。这揭示的根本原则是:务必优先利用数据库核心的SQL引擎能力,而非用过程化代码(无论是Java还是PL/SQL)去替代它。 当然,PL/SQL并非一无是处。文章也强调了其不可替代的价值,例如实现数据库内部监控工具。作者用了一个形象的类比:将监控代码部署在数据库内部,就像把监控脚本直接放在被监控主机上,避免了网络开销,能获取更精确的数据。文中推荐的工具Session Snapper,就是一个典型的、高效运行在数据库内部的PL/SQL诊断范例。 因此,PL/SQL是一把宝剑,用于数据库管理与扩展时锋利无比;但若当作处理数据的“菜刀”来过度使用,则可能事倍功半。

本机暂存
IT 2013-06-02 19:39:17 / 累计浏览 6,400

C的那些事儿

这篇讲的是C语言在Linux生态中的实践心得与工具推荐。作者从C语言作为许多人的编程启蒙谈起,指出尽管学习路径在演变,但C语言在Linux系统编程领域——如操作系统、数据库等高性能场景——仍占据着核心地位。 文章重点分享了提升C语言“品味”的具体路径。一方面推荐使用Source Insight这类静态分析工具,通过代码跳转、关系图等功能,在庞大的开源代码库中理清脉络;另一方面更推崇借助gprof和cgprof进行动态性能分析,生成可视化的函数调用图,直观展示函数调用次数与时间占比,以真实运行数据替代主观猜测。 作者还特别赞赏了Linux的管道(Pipe)机制,它让不同程序能够无缝衔接,实现了二进制层面的高效代码复用,这比单纯的语句级复用更为精妙。文中以通过管道串联grep、awk等命令为例,展现了这种设计的优雅与强大。 整篇文章并非泛泛而谈,而是结合了作者手边的函数手册、亲测有效的工具链(从编译选项`-pg`到生成调用图的完整流程),以及对Linux设计哲学的具体感受,为想在开源世界中精进C语言的读者,提供了一条清晰、可操作的实践思路。

本机暂存
IT 2013-05-29 22:36:11 / 累计浏览 4,540

Shell的那些事儿

这篇讲的是 Shell 语言如何从大学里一个简单的工具,成长为作者工作中不可或缺的效率利器。作者从学生时代用 Shell 命令裁减文件系统、处理 BAT 脚本讲起,到工作后利用 `grep -Irl` 快速查找文本文件,或用 `find |xargs wc -l` 统计代码行数,生动展现了 Shell 在解决实际问题时“组合命令”的核心魅力。 文章并未停留在基础用法,而是深入探讨了 Shell 的“工程化”一面。作者分享了在性能团队学到的实用技巧,比如用 `-x` 选项调试脚本执行过程、设置参数默认值以及实现进程并发控制。同时,也坦诚讨论了 Shell 语法的灵活性甚至“不严谨”之处,比如 `if` 语句的多种写法和对换行符的敏感,并澄清了如何正确处理分号与命令返回值 `$?` 的使用。 作者的最终观点很明确:相对于 C/C++/Java 等编译型语言,Shell 作为一种“工具性语言”,以其无需编译、即写即测的特性,提供了无与伦比的开发效率。无论是压力测试还是复杂逻辑控制,它都是快速将想法落地的首选。文末那句“不熟悉 Shell 都不好意思说会性能调优”,既是对 Shell 地位的肯定,也点明了在追求效率的现代开发中,掌握这门语言的重要性。

本机暂存
IT 2013-05-29 22:17:54 / 累计浏览 3,860

Java的那些事儿

这篇讲的是作者从个人经验出发,分享对Java语言的理解与数据库开发实战心得。作者认为,Java因其设计上的后发优势、简单的语法和强大的生态(如优秀的IDE),相比C/C++在开发效率上更胜一筹,尤其在现代注重高并发与可扩展性的项目中。 文章的重点,落在了Java开发者(特别是使用Oracle数据库时)必须掌握的三个核心数据库优化点上:首先是连接池技术,以解决连接数失控或过度复用的问题,并给出了基于Oracle UCP的配置示例;其次是语句池技术,强调必须使用绑定变量并启用语句缓存,以避免昂贵的软解析开销;最后是资源泄露问题,指出Java的内存回收机制无法处理数据库连接、游标或事务锁的泄露,这常常是异常处理不严谨导致的,并附有锁等待的监控图作为例证。 作者从实用主义出发,最终将讨论落脚于具体的技术细节与解决方案,对于从事数据库应用开发的Java程序员来说,文中列出的这几点排查清单具有直接的参考价值。

本机暂存
IT 2013-05-16 23:42:19 / 累计浏览 5,180

Javascript的那些事儿

这篇文章从JavaScript的发展历程切入,探讨了它在构建数据库监控可视化方案中的实际应用。作者以Oracle Enterprise Manager中经典的“等待事件图”为实例,展示了如何利用JavaScript和ExtJS类库来复刻这一功能。 具体方案上,文章推荐使用ExtJS的图表组件来处理绘图工作,开发者只需专注于数据获取与格式转换。核心逻辑是创建一个JsonStore来存储等待事件数据,并通过定时(如每5秒)从数据库查询最新记录、移除最旧记录的方式,实现图表的动态前移更新。 文章还对比了JavaScript与Java在实现这一逻辑时的差异,突出了JavaScript作为动态语言在属性定义与操作上的灵活性——例如可以直接使用包含空格的属性名(如“ON CPU”),并通过字典式语法(item['time'])方便地遍历属性,这使得代码比Java实现更为简洁。 最终,通过前端JavaScript的动态数据操作与ExtJS图表库的结合,实现了一个可交互的、实时更新的等待事件监控面板。作者认为,JavaScript或许被低估了,在Web技术主导的时代,它确实是一个强大且实用的工具。

本机暂存
IT 2012-05-10 23:33:55 / 累计浏览 1,940

Exadata:存储节点上所有监控指标与其监控概览

Kaya 在 os2ora.com 上分享了这篇关于 Exadata 存储节点监控的深度指南。文章系统性地梳理了存储服务器上所有关键监控指标,从磁盘 I/O、网络吞吐到内存与 CPU 利用率,每一个指标都对应着系统健康状态的特定维度。 作者没有停留在罗列指标的层面,而是深入讲解了如何将这些分散的指标整合成一个清晰的监控概览。文章特别强调了不同指标在性能分析中的关联性,例如如何通过结合等待事件与资源消耗数据来定位瓶颈。对于 DBA 和运维人员来说,这相当于提供了一套完整的“仪表盘解读手册”,帮助他们在日常巡检或故障排查时,能快速抓住重点,理解系统负载背后的含义。 这篇指南的价值在于其极强的实用性,它将枯燥的监控列表转化为一套可操作的监控逻辑,让读者能更有效地利用 Exadata 平台自带的丰富遥测数据来保障数据库环境的稳定与高效。

本机暂存