oracle索引的测试实例代码


本文整理自网络,侵删。

前言

在测试oracle索引性能时大意了,没有仔细分析数据特点,将情况特此记录下来。 

需求:  对一张100w记录的表的 stuname列进行查询,测试在建立索引与不建立索引的区别. 以下是开始用的创建代码及执行效果. 

1. 随机数据生成代码分析

--为测试索引而准备的随机数据生成代码,先分析一下
select rownum as id,
     'smith'||trunc(dbms_random.value(0, 100)) as stu_name,
     dbms_random.string('x', 20) stu_pwd,
     to_char(add_months(sysdate,-DBMS_RANDOM.VALUE(100,200)) + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as birthday ,
     decode( TRUNC(DBMS_RANDOM.VALUE(1,5)),1,'湖南省',2,'湖北省',3,'江西省','北京市') as address
   from dual
   connect by level <= 100; 

--先分析以下上面的代码

-- 伪列:  rownum

--  dual   : 测试表

--   || 字符串联接

--1. 测试生成100条记录     connect by level<=100 : 

--a、利用Oracle特有的“connect by”树形连接语法生成测试记录,“level <= 100”表示要生成100记录;

--b、利用rownum虚拟列生成递增的整数数据;

--c、利用sysdate函数加一些简单运算来生成日期数据,本例中是每条记录的时间加1秒;

--       add_months(sysdate,-DBMS_RANDOM.VALUE(100,200))   用当前时间 减去   至少100个月,最多200个月,来生成生日

--d、利用dbms_random.value函数生成随机的数值型数据,都是double型,所以都加了 trunc(   )以截断小数位,本例中是生成0到100之间的随机整数;

--e、利用dbms_random.string函数生成随机的字符型数据,本例中是生成长度为20的随机字符串,字符串中可以包括字符或数字。

2. 生成测试表及数据

--2. 正式生成100W
drop table stu_test_100w; --如果原来有,则先删除原来的表
 
--创建表及数据
create table stu_test_100w
as
select rownum as id,
     'smith'||trunc(dbms_random.value(0, 99)) as stu_name,
     dbms_random.string('x', 20) stu_pwd,
     to_char(add_months(sysdate,-DBMS_RANDOM.VALUE(100,200)) + rownum / 24 / 3600, 'yyyy-mm-dd hh24:mi:ss') as birthday ,
     decode( TRUNC(DBMS_RANDOM.VALUE(1,5)),1,'湖南省',2,'湖北省',3,'江西省','北京市') as address
   from dual
   connect by level <= 1000000; -- 生成 100w测试数据
-- 查看当前用户模式下所有的表 
select * from tab where tname='STU_TEST_100W';
--先执行一次查询, 注意查询所用的时间,此时并没有加入索引 
select * from stu_test_100w where stu_name='smith13'; 

执行结果: 

以上是没有用到索引时的执行用时  6.781秒. 

阅读剩余部分

相关阅读 >>

c#实现远程连接oracle数据库的方法

plsql登录oracle数据库报错ora-12154tns无法解析指定的连接标识符已解决(本地未安装oracle需要连接服务器上的)

oracle impdp network_link参数使用介绍

分解oracle存储过程或函数调试过程步骤

如何解决winxp系统oracle无法使用

oracle例外用法实例详解

oracle sid存在解決方法

oracle如何删除视图?

access2000迁移到oracle9i要点

oracle也有注入漏洞

更多相关阅读请进入《oracle》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...