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

Oracle 数据生成 索引

1.建表
CREATE TABLE qq(
       qq_num integer
);
2.插入数据
插入数据的方法有很多种,但是要插入3亿数据,必须要有高效的算法。在插入数据时我用了最笨的办法,采用PL/SQL利用流程控制的LOOP语句插入。同时我也看了网上的插入效率的优化,怎样利用较少的时间生成较多的测试数据。给我印象深刻的是利用种子表来生成较多的数据。
这样做的好处是本身数据就在本地磁盘,减少了存取的I/O操作,数据生成较快。
我采用最笨的办法利用8小时生成了2亿多条数据记录。
3.索引的建立
由于已存在的记录有2亿条,采用CREATE INDEX qq_num_index ON qq(qq_num);耗费时间近1小时。
索引的好处:查询效率提高,索引相关的“填充因子”。
count()函数始终不走索引,都是全盘扫描,还未找到解决办法。也就是以下PL/SQL执行的时间在建立索引前后是一样的。
DECLARE
count_num NUMBER;
BEGIN
dbms_output.put_line('语句执行开始时间:'||systimestamp);
SELECT COUNT(qq_num) INTO count_num from qq WHERE qq_num IS NOT NULL;
dbms_output.put_line('结果:'||count_num);
dbms_output.put_line('语句执行结束时间:'||systimestamp);
END;
/
但是建立索引后,SELECT MAX(qq_num) 和其他相关的语句的执行时间立即减少了很多。
以下是代码:
DECLARE
count_num NUMBER;
BEGIN
dbms_output.put_line('语句执行开始时间:'||systimestamp);
SELECT MAX(qq_num) INTO count_num from qq;
dbms_output.put_line('结果:'||count_num);
dbms_output.put_line('语句执行结束时间:'||systimestamp);
END;
/
建立索引前:执行时间为1分7秒,索引后0.2秒内完成。
建立索引是以存储空间为代价换取时间效率的提高。
这当中有autotrace可以自动显示SQL语句的执行计划,这种查看必须在SQL *PLUS下.
开启autotrace的步骤如下:
--DBA初次必须执行
CREATE ROLE plustrace;--需要拥有权限
GRANT SELECT ON v_$sesstat TO plustrace;--需要有GRANT权限
GRANT SELECT ON v_$mystat TO plustrace;
GRANT SELECT ON v_$statname TO plustrace;
--开启自动跟踪
SET AUTOTRACE ON;


相关文档:

oracle行列转换(转)

1、固定列数的行列转换

student subject grade
--------- ---------- --------
student1 语文 80
student1 数学 70
student1 英语 60
student2 语文 90
student2 数学 80
student2 英语 100
……
转换为
语文 数学 英语
student1 80 70 60
student2 90 80 100
……
语句如下:s ......

Oracle保存大对象BLOB

最近在使用Oracle做文件上传,要求将文件数据保存到数据库中。Oracle提供了Blob用来存储二进制大对象数据,可是它和Java.sql里面的Blob不兼容,经常导致Blob字段无法锁定或者操作失败。由于以前没有做过这样的例子,所以花了不少时间才解决。
我使用的是struts2.1.8+spring2.5+hibernate3.2,下面是相关代码:
spring配置 ......

Oracle数据库提高命中率及相关优化

1)Library Cache的命中率:
.计算公式:Library Cache Hit Ratio = sum(pinhits) / sum(pins)
SQL>SELECT SUM(pinhits)/sum(pins)    from V$LIBRARYCACHE; 
通常在98%以上,否则,需要要考虑加大共享池,绑定变量,修改cursor_sharing等参数。
2)计算共享池内存使用率:
SQL>SELECT ......

J2EE操作Oracle的clob类型字段


2008-09-02
J2EE操作Oracle的clob类型字段
关键字: java
Oracle中,Varchar2支持的最大字节数为4KB,所以对于某些长字符串的处理,我们需要用CLOB类型的字段,CLOB字段最大支持4GB。
还有其他几种类型:
blob:二进制,如果exe,zip
clob:单字节码,比如一般的文本文件.
nlob:多字节码,如UTF格式的文件.
以下就 ......

Oracle数据导入导出imp/exp命令

Oracle数据导入导出imp/exp就相当于oracle数据还原与备份。exp命令可以把数据从远程数据库服务器导出到本地的dmp文件,imp命令可以把dmp文件从本地导入到远处的数据库服务器中。 利用这个功能可以构建两个相同的数据库,一个用来测试,一个用来正式使用。
 
执行环境:可以在SQLPLUS.EXE或者DOS(命令行)中执行,
......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号