木匠的微型博客 Charlie Twitter

    follow me on Twitter

    Friday, May 29, 2009

    PL/SQL代码可以有多大size limit

    PL/SQL程序块的最大尺寸是67108864 (2**26) DIANA节点, 主要是受shared memory pool的限制.
    PL/SQL程序块包括(Package)包头,包体,独立存储过程,或者匿名程序块. eBay好像是统统使用匿名PL/SQL块.

    但是对于DIANA节点,我们只能获取一个大概的数字,通过查询视图USER_OBJECT_SIZE,PARSED_SIZE列里面是"扁平化的flattened" DIANA节点数:


    SQL> SELECT * FROM user_object_size WHERE name = 'PKG1';

    NAME TYPE SOURCE_SIZE PARSED_SIZE CODE_SIZE ERROR_SIZE
    ----------------------------------------------------------------
    PKG1 PACKAGE 46 165 119 0
    PKG1 PACKAGE BODY 82 0 139 0


    根据Tom和Tim(http://oracle-base.com/)的理想境界,去除Java/C/.Net等前端应用代码里面的所有SELECT/INSERT/UPDATE/DELETE/MERGE,把那些丑陋的SQL扔到九霄云外.
    --不是说Java Developer不会写SQL, 而是他们的强项不在数据库. 模块化,专业分工,高效合作,

    鄙人最近三个月奋发图强,努力工作,大力推行Database API, 消灭Java应用里面的SQL代码,书写了很多PL/SQL代码,有一个接近100K,编译一遍耗时数秒, 就开始担心最大尺寸问题. 结果PARSED_SIZE只有6115, 离67108864(64M)还差点远着哩.

    当然鄙人也在认真学习Agile编程里面的Refactoring代码重构, 尽量将重复使用的代码段抽象成子过程,或者工具包.

    参考:
    Oracle® Database PL/SQL Language Reference
    11g Release 1 (11.1)

    Appendix C PL/SQL Program Limits
    .

    Sunday, May 24, 2009

    Give and Take - IT Club聚会主题征集

    眼看五月份要交白卷了, 转一篇我在维多利亚IT俱乐部的帖子:

    鄙人有一个想法:

    就是大伙罗列出你关心/感兴趣的主题, 和你能够共享/贡献的主题.
    把答案发给木匠,然后鄙人整理筛选,协助GengLi 和 老Shan协调安排, 使以后的聚会更加有针对性.

    好了, 举个例子, 比如 木匠的共享和兴趣:

    贡献
    ----
    *) 给IT老兵的六点建议
    *) 数据库应用开发的糟糕模式与实践 Performance Anti-Patterns in Database-Driven
    Applications
    *) JDBC/.Net应用的高效数据库存取
    *) GTD 时间管理

    *) 自由泳 训练
    *) 露营 + 密林狂奔
    *) 训练小狗
    *) Cowichan lake 轮胎漂流

    感兴趣
    -- -- ---
    如和构建易于线性扩展的Web应用系统架构 (Scale out)
    Agile项目管理
    Agile软件开发流程

    户外露营 + 密林狂奔
    小狗训练
    川菜烹饪
    划船 及 安全


    - MJ