`
278506470
  • 浏览: 10799 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

oracle 随机查询

阅读更多

【1】方法一:通过dbms_random.random

select   *   from  ( select   *   from  largetable  order   by  dbms_random.random)  where  rownum  <=   20000 ;

【2】方法二:通过dbms_random.value
select   *   from  ( select   *   from  largetable  order   by  dbms_random.value)  where  rownum  <=   20000 ;

【3】方法三:通过采样表扫描
select   *   from  ( select   *   from  largetable sample( 10 ))  where  rownum  <=   20000 ;

下面我们通过实践来比较这3种方法的效率,首先我们创建一个包含有10W条记录的表用于实验:
create   table  LARGETABLE
(
  ID       
NUMBER   not   null   primary   key ,
  BIRTHDAY DATE 
not   null
)

接下来我们插入10W条数据
create   or   replace   procedure  random_insert  as
  i         
number ;
  startDate date :
=  sysdate;

begin

  
for  i  in   1  ..  100000  loop
    
insert   into  largetable  values  (i, startDate  +   1 );
  
end  loop  commit ;

end ;

在SQL*PLUS下设置显示SQL语句执行时间:set timing on,让后分别运行上述三条语句:

第一个的执行时间为 00: 00: 16: 04
第二个的执行时间为 00: 00: 54: 04
第三个的执行时间为 00: 00: 08: 07

从这里我们可以看出在进行数据随机抽取时,采用sample的方法效率是最高的。为了保证每次随机查询的数据尽量不重复,我们可以把sample中的百分比提高一些(例如从10%提高到20%)。

分享到:
评论

相关推荐

    Oracle中如何生成随机数字、随机字符串、随机日期

    Oracle中如何生成随机数字、随机字符串、随机日期 详细实例脚本。

    随机获取oracle数据库中的任意一行数据(rownum)示例介绍

    `ROWNUM`在处理大数据集时尤其有用,例如在执行随机选取数据、分页查询或者特定行选择等场景。 首先,`ROWNUM`是一个伪列,它在查询执行时由Oracle系统自动生成,从1开始对每一行进行编号。它不是存储在表中的实际...

    oracle11g 设置随机启动

    ### Oracle 11g 设置随机启动详解 #### 标题:Oracle 11g 设置随机启动 #### 描述概述: 本文档提供了一种确保Oracle 11g数据库服务能够随系统启动而自动运行的方法。该方法经过实际测试验证,确保在设置完成后...

    随机生成汉字(控制台下)

    在IT领域,编程时常需要处理各种数据生成任务,其中之一就是生成随机汉字。本文将深入探讨如何在控制台环境下实现这一功能,以及背后的汉字编码原理。 首先,我们要了解汉字的编码方式。汉字在计算机中通常使用...

    Oracle里抽取随机数的多种方法

    在 Oracle 中抽取随机数是许多应用场景中常见的问题,例如在某个活动中需要随机取出一些符合条件的用户,以颁发获奖通知或其它消息。本文将通过实例讲解如何抽取随机数的多种方法。 首先,我们可以使用 Oracle 自带...

    oracle分页查询

    在没有明确的排序情况下,Oracle会随机选择记录,导致结果不一致。正确的做法是将排序和行号分配分开处理,使用三层嵌套查询: 1. **第一层**:对数据进行排序 ```sql select * from t_stu t order by s_birthday ...

    oracle取随机数

    Oracle也提供了生成随机字符串的功能,主要通过`DBMS_RANDOM.STRING`函数实现,该函数接受两个参数:字符类型(如可打印字符)和长度。 ```sql SELECT DBMS_RANDOM.STRING('P', 20) FROM DUAL; ``` 其中,'P'代表...

    Oracle随机启动

    ### Oracle随机启动知识点详解 #### 一、Oracle随机启动概述 在Linux环境下,为了实现Oracle数据库服务能够在系统启动时自动启动,通常会采用特定的方法来配置。本篇将重点介绍如何通过修改`/etc/oratab`文件以及...

    Oracle插入随机数

    在Oracle数据库管理中,有时我们需要向数据库表中插入大量的随机数据来进行测试、演示或者数据模拟分析等工作。本篇文章将详细介绍如何利用自定义的Oracle函数来实现这一功能。 #### 自定义Oracle函数 为了实现向...

    利用ORACLE实现数据的抽样

    然而,Oracle数据库本身并未直接提供系统抽样的功能,因此需要结合SQL查询与外部编程逻辑来实现。 #### 3. 整群抽样 整群抽样是将总体划分成若干群体,然后从这些群体中随机抽取一部分作为样本。在Oracle中,可以先...

    Oracle里取随机数的几种具体的方法

    5. 将临时表 tmp_1 和 tmp_2 相关联,取得符合条件的随机记录。 6. 最后,删除临时表 tmp_1、tmp_2 和序列号 tmp_id。 例如,以下是使用 DBMS_RANDOM 包生成随机数的示例代码: ```sql -- 创建序列号 tmp_id CREATE...

    数据库查询排序使用随机排序结果示例(Oracle/MySQL/MS SQL Server)

    MySQL随机查询出一条记录: 代码如下: — 下面的查询语句效率高,不要使用 SELECT * FROM table1 ORDER BY rand() LIMIT 1 来查询 SELECT * FROM table1 WHERE id=(SELECT id FROM table1 ORDER BY rand() LIMIT 1)...

    Oracle OCP 考试模拟器

    模拟器的特点在于它能够随机出题,这意味着每次练习时的题目顺序和选项都会有所不同,这种设计有助于考生在不同的环境下检验自己的理解和应变能力。用户需要手动添加考题和答案,这既是学习过程的一部分,也使得用户...

    Oracle中如何用一条SQL快速生成10万条测试数据

    在Oracle数据库管理中,生成大量测试数据是进行性能测试、数据建模以及验证查询效率等场景下不可或缺的一环。本文将深入探讨如何利用一条SQL语句在Oracle中快速生成10万条测试数据,这对于数据库管理员和开发人员来...

    Oracle字符集id,16位id以及name

    ID ID(Hex) Name ID ID(Hex) Name ID ID(Hex) Name 1 0001 US7ASCII 2 0002 WE8DEC 3 0003 WE8HP 4 0004 US8PC437 5 0005 WE8EBCDIC37 6 0006 WE8EBCDIC500 7 0007 WE8EBCDIC1140 8 0008 WE8EBCDIC285 9 0009

    Oracle中如何生成随机数字、随机字符串、随机日期.docx

    在 Oracle 数据库中,生成随机数据对于测试、模拟或数据分析任务非常有用。下面将详细介绍如何在 Oracle 中生成随机数字、随机字符串以及随机日期。 1. 随机小数: Oracle 提供 `DBMS_RANDOM.VALUE` 这个包来生成...

    Oracle_数据库中的海量数据处理

    - **管理各种用户请求**:无论是简单查询还是复杂分析任务,Oracle数据仓库都能高效处理。 - **查询快速响应**:利用先进的查询优化技术和并行处理能力,加速数据检索速度。 - **支持大量用户并发**:能够承受高并发...

    Oracle中如何生成随机数字、随机字符串、随机日期.pdf

    在Oracle数据库中,生成随机数据是一项常见的需求,尤其是在测试、模拟和数据分析时。Oracle提供了几个内置函数来帮助我们生成随机的小数、整数、字符串以及日期。下面我们将详细讨论这些函数的使用方法。 1. 随机...

    Oracle插入数据时获取自增ID

    ### Oracle插入数据时获取自增ID 在Oracle数据库中,当需要实现类似其他数据库系统(如MySQL、SQL Server等)中的自动增长字段功能时,通常会采用序列(sequence)和触发器(trigger)来实现这一需求。下面将详细...

Global site tag (gtag.js) - Google Analytics