PL/SQL数据类型和效率分析
来源:互联网 发布:电力系统编程 编辑:程序博客网 时间:2024/05/16 15:00
在PL/SQL编程中,要注意对于的数据类型的使用。PL/SQL支持多种兼容的数据类型,选择适合的数据类型对于PL/SQL的性能有很大的影响。下面是一个简单的例子:
IS
anumber NUMBER;
ainteger INTEGER;
anumber_10 NUMBER (10);
apls_integer PLS_INTEGER;
abinary BINARY_INTEGER;
err NUMBER;
BEGIN
anumber := 0;
LOOP
anumber := anumber + 1;
ainteger := ainteger + 1;
anumber_10 := anumber_10 + 1;
apls_integer := apls_integer + 1;
abinary := abinary + 1;
EXIT WHEN anumber > 1500;
END LOOP;
END;
/
这个例子中测试了NUMBER、INTEGER、NUMBER(N)、PLS_INTEGER、BINARY_INTEGER这几种整数类型的运行效率。
我们使用DBMS_PROFILER进行测试:
err NUMBER;
BEGIN
err :=
DBMS_PROFILER.start_profiler (TO_CHAR (SYSDATE, 'dd-Mon-YYYY hh:mi:ss'));
testplsql;
err := DBMS_PROFILER.stop_profiler;
END;
/
通过查询PROFILER表,结果如下:
模块 执行时间 行号 语句
TESTPLSQL .000350 9 anumber:=0;
TESTPLSQL .358233 11 anumber:=anumber+1;
TESTPLSQL .358399 12 ainteger:=ainteger+1;
TESTPLSQL .363219 13 anumber_10:=anumber_10+1;
TESTPLSQL .133521 14 apls_integer:=apls_integer+1;
TESTPLSQL .498786 15 abinary:=abinary+1;
TESTPLSQL .511632 16 exit when anumber>1500 ;
从测试结果可以看出,PLS_INTEGER最快,其次是NUMBER和INTEGER类型,最慢的是BINARY_INTEGER。产生这种差异的原因何在呢?PLS_INTEGER是PL/SQL 2.2版本的标准整型类型,只要是整型变量,取值范围在-2147483647和+2147483647之间的整数都可以用PLS_INTEGER来表示。PLS_INTEGER是直接和操作系统C语言的类型对应的语言,在执行过程中没有类型转换的开销,因此最快。
在PL/SQL中,使用和C语言类型对应的类型来定义变量可以大大提高PL/SQL的效率。以下是PL/SQL类型和C语言类型的对应关系:
- PL/SQL数据类型和效率分析
- oracle 数据库数据类型和PL/SQL数据类型
- PL/SQL的数据类型和常用函数
- PL/SQL的数据类型和常用函数
- 触发器和pl/sql数据类型_标量
- PL/SQL 数据类型和变量 -- 字符
- PL/SQL 数据类型和变量 -- 数值
- PL/SQL 数据类型和变量 -- ROWID
- PL/SQL 数据类型和变量 -- BOOLEAN
- PL/SQL 数据类型和变量 -- 大对象
- pl/sql数据类型
- PL/SQL中的数据类型
- PL/SQL数据类型
- PL/SQL数据类型
- PL/SQL数据类型
- PL/SQL的数据类型
- pl/sql块数据类型
- PL/SQL--复杂数据类型
- 在Debian下安装windows的中文TrueType字体
- 《大客户拓展策略》培训笔记
- 两大美女代言《极品飞车11》11月发布
- 添加取得子节点
- 搞定debian下的中文输入
- PL/SQL数据类型和效率分析
- 公司的最終決定
- 女儿学会翻身了
- 勞動仲裁
- 软件测试经理是这样炼成的!
- 《仙剑奇侠传4》精装版内容曝光
- 定制GNU Emacs字体语法颜色
- 数据库孤立用户解决办法
- 给eshell设置环境变量