易截截图软件、单文件、免安装、纯绿色、仅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连接字符串的写法

今天上午测试一个访问ORACLE的c++类,文档上说连接字符串的格式为"用户名/口令@连接名",我不是太明白连接名到底为何物,先用IP地址试了试
,总是报错,说无法解析的连接标识符,后来在网上查了半天,看到有个人说连接名就是$(ORACLE_HOME)/network/admin/tnsnames.ora里定义的数据库连接的名称,试了一下,果然如此。 ......

查看oracle数据库表信息

1. 查看表空间的名称及大小
select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size
from dba_tablespaces t, dba_data_files d
where t.tablespace_name = d.tablespace_name
group by t.tablespace_name;
2、查看表空间物理文件的名称及大小
select tablespace_name, file_id, file_name,
round(byte ......

Oracle TNSLSNR Full Client

Most of admins neglect setting password on TNSlsnr Clients for Oracle databases. Oracle ensures that you can either connect to TNSlsnr on a localhost or through mapping to a remote Oracle database using .ora files.
This is not the case anymore Based on Jwa perl client.
This client is a FULL clie ......

oracle 拆分字符串

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