易截截图软件、单文件、免安装、纯绿色、仅160KB

【转】 PL/SQL最差实践

PL/SQL最差实践
http://benben.javaeye.com/blog/278164
1. 超长的PL/SQL代码
           影响:可维护性,性能
           症状:
            在复杂的企业应用中,存在动辄成百上千行的存储过程或上万行的包。
        为什么是最差:
            太长的PL/SQL代码不利于阅读,第三方工具在调试时也会出现代码行混乱等问题。PL/SQL存储对象(存储过程、包、函数、触发器等)行数上限约为6000000行,但实际工作中,当包大小超过5000行就会出现调试问题。
        解决之道:
            PL/SQL代码在执行前会被加载到shared pool中,shared pool以字节为单位,UNIX下为64K,桌面环境下为32K,可以通过查询数据字典USER_OBJECT_SIZE的PARSED_SIZE字段查看对象大小。对于较大的包,应采用拆包策略,抽取复用部分,减少重复代码;对于较大的存储过程,应将存储过程组织到包中,易于管理;对于较大的匿名块,应将匿名块重新定义成子过程保存在数据库中。
        2. 脱离控制的全局变量
        影响:可维护性
        症状:在包中使用了全局变量,在多个位置对全局变量进行操作。
        CREATE OR REPLACE PACKAGE BODY PKG_TEST IS
        GN_全局变量 NUMBER(12, 2);
        PROCEDURE 过程A IS
        BEGIN
        GN_全局变量:=1;
        END;
        PROCEDURE 过程B IS
        BEGIN
        GN_全局变量:=2; -- 这里对全局变量进行了另外的操作
        EN


相关文档:

SQL的优化

大家都在讨论关于数据库优化方面的东东,刚好参与开发了一个数据仓库方面的项目,以下的一点东西算是数据库优化方面的学习+实战的一些心得体会了,拿出来大家共享。欢迎批评指正阿!
SQL语句:
是对数据库(数据)进行操作的惟一途径;
消耗了70%~90%的数据库资源;独立于程序设计逻辑,相对于对程序源代码的优化,对SQ ......

SQL语句中 N 后接续字符串的作用

如:SET @sql=N'SELECT * from stu'
其中“N”的作用是表示后面的编码格式为unicode编码
DECLARE @rst INT,@sql NVARCHAR(4000)
SET @sql=N'SELECT * from tb '
EXEC sp_executesql @sql,N'@rst INT OUTPUT',@rst OUTPUT
SELECT @rst
......

[SQL]触发器的使用

1. 创建触发器, 在mssql下的触发器的使用:Db->表->选择表名->所有任务(右键)->管理触发器
2. 当表被更新\插入\删除后,都可以通过定义触发器来响应该事件,从而进行相应的处理! 如一个学生转系了,其学号被更换了,他所借的图书对应的学号也相应需要改动,这个我们可以只通过update其学号,和学号相关联的表由触发器 ......

[SQL]存储过程的使用

1.在mssql创建存储过程,在db->存储过程->新建存储过程(右键)
CREATE PROCEDURE user_logon_check @username varchar(45),@userpsw varchar(45)
 AS
select * from users where UserName = @username and PasswordCode = @userpsw
return 10
GO
2.在mysql创建存储过程,使用Mysql Query Browser,在db->表 ......

sql完全解析

1、简单查询
求出在1988年以前被雇佣的销售人员
SELECT NAME
 from SALESREPS
WHERE HIRE_DATE<'01-JAN-88'
列出其销售量低于销售目标的80%的销售点
SELECT CITY,SALES,TAGET
from SALESPEPS
WHERE SALES<0.8*TAGET ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号