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

[转]Oracle 随机获取N条数据


当我们获取数据时,可能会有这样的需求,即每次从表中获取数据时,是随机获取一定的记录,而不是每次都获取一样的数据,这时我们可以采取Oracle内部一些函数,来达到这样的目的.   
  
   1) select * from (select * from tablename order by sys_guid()) where rownum < N;    
   2) select * from (select * from tablename order by dbms_random.value) where rownum< N;    
   3) select *  from (select * from table_name sample(10)   order by trunc(dbms_random.value(0, 1000)))  where rownum < N;   
   说明: sample(10)含义为检索表中的10%数据,sample值应该在[0.000001,99.999999]之间.   
  
   其中 sys_guid() 和 dbms_random.value都是内部函数,通过这样的方法,就可以实现我们的需求了.   
  
   注:   
        在使1)方法时,即使用sys_guid() 这种方法时,有时会获取到相同的记录,即和前一次查询的结果集是一样的,我查找了相关资料,有些说是和操作系统有关,在windows平台下正常,获取到的数据是随机的,而在linux等平台下始终是相同不变的数据集,有些说是因为sys_guid()函数本身的问题,即sys_guid()会在查询上生成一个16字节的全局唯一标识符,这个标识符在绝大部分平台上由一个宿主标识符和进程或进程的线程标识符组成,这就是说,它很可能是随机的,但是并不表示一定是百分之百的这样.   
         
       所以,为确保在不同的平台每次读取的数据都是随机的,我们大多采用2)和3)两种方案,其中2)方案更常用.3)方案缩小了查询的范围,在查询大表,且要提取数据不是很不多的情况下,会对查询速度上有一定的提高,   
  
   另:在Oracle中一般获取随机�


相关文档:

大型数据库优化设计浅谈(ORACLE) (一)

  
   对于ORACLE数据库的数据存取,主要有四个不同的调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是ORACLE RDBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。下面从几个不同方� ......

oracle带参数游标的使用


  从游标提取数据
  从游标得到一行数据使用FETCH命令。每一次提取数据后,游标都指向结果集的下一行。语法如下:
FETCH cursor_name INTO variable[,variable,...]
  对于SELECT定义的游标的每一列,FETCH变量列表都应该有一个变量与之相对应,变量的类型也要相同。
  例:
SET SERVERIUTPUT ON
DECLARE
......

oracle中分页的实现方式.rownum的使用

对于rownum来说它是oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,依此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀。
 举例说明:
例如表:student(学生)表,表结构为:
ID       char(6)      --学号
name   ......

oracle uptime的bug

症状:oracle sqlplus没反应
oracle10g的有十几个机器客户端10.2.0.1.0,执行sqlplus这个命令没反映。此时cpu使用为99.9%,观察了一会,不释放。
oracle其他命令都好使。
环境变量、ping tnsname等都没问题。。且这些机器都是至少运行了200多天左右,
但一旦重启OS就好使了。。
或者不重启OS,换成9i的客户端,sqlplus ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号