易截截图软件、单文件、免安装、纯绿色、仅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中Kill session的研究

Oracle中Kill session的研究
作者:eygle |English Version 【转载时请以超链接形式标明文章出处和作者信息及本声明】
链接:http://www.eygle.com/archives/2004/06/kill_session.html
我们知道,在Oracle数据库中,可以通过kill session的方式来终止一个进程,其基本语法结构为:
alter system kill session 'sid,serial# ......

比较好的oracle和小型机资料

 比较专业,专门计算机技术电子书下载的:
www.itpub.net
www.itepub.net
www.netyi.net/in.asp?id=daotong
www.chmpdf.com
相对不太专业的,内容也非常丰富
www.infoxa.com
www.xpbook.com
这些网站几乎可以找到你想要的全部书籍。 ......

oracle——分析函数OVER ()

分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是
对于每个组返回多行,而聚合函数对于每个组只返回一行。
SQL> select t.empno,t.ename,sum(t.sal)
2 from emp t;
select t.empno,t.ename,sum(t.sal)
*
ERROR at line 1:
ORA-00937: not a single-group group function
SQL> selec ......

Using Oracle Trace Analyzer (trcanlzr.sql)


Using Oracle Trace Analyzer (trcanlzr.sql)
Dave Moore:  Author of Oracle Utilities
Oracle has provided another utility initially designed for performance tuning Oracle Applications.  Trace Analyzer is provided in the form of a PL/SQL package (TRCA$ ).  The Trace Analyzer utility i ......

oracle 拆分字符串

最近从Excel中到了一些数据,结果一个列的数据是以逗号分隔的字符串,想把它拆分开找到了下边的方法,贴出来分享一下:
CREATE   OR   REPLACE   PROCEDURE   sptstr   (srcstr   varchar2)   as  
      stmp   varchar2(2000);  
  begin &n ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号