少年阿宾

那些青春的岁月

  BlogJava :: 首页 :: 联系 :: 聚合  :: 管理
  500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

#

     摘要: 删除回滚段   当回滚段不再需要或要重建以改变INITIAL,NEXT或MINEXTENTS参数时,可以将其删除。要删除回滚段,不许使该回滚段离线。   语法: DROP ROLLBACK SEGMENT rollback_segment;  例: DROP ROLLBACK SEGMENT rbs01;  查询回滚段的信息   所用数据字典:DB...  阅读全文
posted @ 2012-12-14 00:10 abin 阅读(573) | 评论 (0)编辑 收藏

ORA-01555:快照过旧。    一个对于Oracle DBA来说最经典问题。
发生的根本原因:一致性读出了问题。   

看到网上有个同学,举例说明,觉得不错,拿来用下:
假设有张表,叫table1,里面有5000万行数据,假设预计全表扫描1次需要1个小时,我们从过程来看:   
   
1、在1点钟,有个用户A发出了select * from table1;此时不管将来table1怎么变化,正确的结果应该是用户A会看到在1点钟这个时刻的内容。这个是没有疑问的。   
2、在1点30分,有个用户B执行了update命令,更新了table1表中的第4000万行的这条记录,这时,用户A的全表扫描还没有到达第4000万条。毫无疑问,这个时候,第4000万行的这条记录是被写到了回滚段里去了的,我假设是回滚段RBS1,如果用户A的全表扫描到达了第4000万行,是应该会正确的从回滚段RBS1中读取出1点钟时刻的内容的。   
3、这时,用户B将他刚才做的操作commit了,但是这时,系统仍然可以给用户A提供正确的数据,因为那第4000万行记录的内容仍然还在回滚段RBS1里,系统可以根据SCN来到回滚段里找到正确的数据,但是大家注意到,这时记录在RBS1里的第4000万行记录已经发生了一点重大的改变:就是这个第4000万行的在回滚段RBS1里的数据有可能随时被覆盖掉,因为这条记录已经被提交了!!!   
4、由于用户A的查询时间漫长,而业务在一直不断的进行,RBS1回滚段在被多个不同的tracnsaction使用着,这个回滚段里的extent循环到了第4000万行数据所在的extent,由于这条记录已经被标记提交了,所以这个extent是可以被其他transaction覆盖掉的!   
5、到了1点40分,用户A的查询终于到了第4000万行,而这时已经出现了第4条说的情况,需要到回滚段RBS1去找数据,但是已经被覆盖掉了,于是01555就出现了。   
   
这次出现的ORA-01555,引起的原因很特殊。   
报错是回滚段SYSSMU1有问题.   
所以断定的是,并不是因为大量的读写,造成的一致性读错误,而且因为回滚段的错误,使快照出现了问题。   
   
首先观察下回滚段:   
SQL> select segment_name,tablespace_name,status from dba_rollback_segs;   
发现表空间UNDOTBS1的回滚段_SYSSMU1$-10$都是online。   
发现表空间UNDOTBS2的回滚段SYSSMU1是竟然是needs recovery,其他都是offline。   
最有趣的是这个数据库指定的UNDO是UNDOTBS1,UNDOTBS2实际已经被弃用了。   
   
尝试把该回滚段offline后删除,但是提示非法。   
重启数据库后该回滚段状态变成了availabe。   
再次尝试offline后删除,还是提示正在使用。   

 
用直接更新数据字典的方法   
SQL>update undo$ set status$=2 where name='SYSSMU1';   
发现该回滚段状态变更为offline,drop掉即可。   
ORA-1555不再出现。   


本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:http://www.linuxidc.com/Linux/2012-10/73260.htm

posted @ 2012-12-13 23:28 abin 阅读(435) | 评论 (0)编辑 收藏

首先说明一下:这是两个2个东西拉

动态代理,不是java语言特性, 只是java提供动态方法拦截的一种方式(工具)
有点类似 hook
动态代理,只是动态的通过反射,动态执行目标的相关操作,
当然要想实现动态代理,必须该类有接口(貌似cglib不需要的)
动态代理,是一种实现方式


多态,是oo语言的特性

多态表现在重载,一个父类的变量可以引用子类的对象


 

posted @ 2012-12-11 17:46 abin 阅读(727) | 评论 (0)编辑 收藏

方法一:

package com.abin.lee.thread;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
public class ThreadSync{
 
 public static List<Object> ThreadSync(final String message) throws InterruptedException{
  final List<Object> list=new LinkedList<Object>();
  Thread thread=new Thread(){
   public void run(){
    if(message.equals("one")){
     list.add(0, message);
    }
   }
  };
  thread.start();
  thread.join();
  return list;
 }
 
 public static void main(String[] args) throws InterruptedException {
  List<Object> list=ThreadSync("one1");
  System.out.println("size="+list.size());
  for(Iterator it=list.iterator();it.hasNext();){
   Object obj=(Object)it.next();
   System.out.println("obj="+obj);
  }
  
 }
}




方法二:

posted @ 2012-12-07 10:36 abin 阅读(674) | 评论 (0)编辑 收藏

     摘要:       教你如何迅速秒杀掉:99%的海量数据处理面试题 作者:July出处:结构之法算法之道blog 前言    一般而言,标题含有“秒杀”,“99%”,“史上最全/最强”等词汇的往往都脱不了哗众取宠之嫌,但进一步来讲,如果读者读罢此文,却无任何收获,那么,我也甘...  阅读全文
posted @ 2012-12-06 15:06 abin 阅读(1540) | 评论 (0)编辑 收藏

1、oracle正则表达式很强大哟,去掉字符串的(如果字符串开头和结尾存在"双引号的话)起头和结尾的双引号
select regexp_replace('"1234"456"','^(")|(")$','') from dual;
2、过滤掉字段里面的所有大小写字母,大小写字母通杀
select regexp_replace(t.address,'^[a-z]+|[A-Z]+$','') from abin7 t;
posted @ 2012-12-06 11:42 abin 阅读(498) | 评论 (0)编辑 收藏

1、cat命令:

     功能:1)显示整个文件。

                   示例: $ cat fileName

              2)把文件串连接后传到基本输出,如将几个文件合并为一个文件或输出到屏幕。

                   示例: $ cat file1 file2 > file

     说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
     cat参数详解:
     -n 或 –number 由 1 开始对所有输出的行数编号
     -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
     -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
     -v 或 –show-nonprinting

2、more命令:

     以百分比的形式查看日志。    

 

3、less命令:

     跟more功能差不多,只不过less支持前后翻阅文件。

 

4、head命令:

     功能:从文本文件的头部开始查看,head 命令用于查看一个文本文件的开头部分。

     示例如下:
     head example.txt 显示文件 example.txt 的前十行内容;
     head -n 20 example.txt 显示文件 example.txt 的前二十行内容;
     head详解:
     -n      指定你想要显示文本多少行。
     -n number     这个参数选项必须是十进制的整数,它将决定在文件中的位置,以行为单位。
     -c number     这个参数选项必须是十进制的整数,它将决定在文件中的位置,以字节为单位。

5、tail命令:

     功能:tail 命令用于显示文本文件的末尾几行。

     示例如下:

     tail example.txt 显示文件 example.txt 的后十行内容;
     tail -n 20 example.txt 显示文件 example.txt 的后二十行内容;
     tail -f example.txt 显示文件 example.txt 的后十行内容并在文件内容增加后,自动显示新增的文件内容。

     tail -n 50 -f example.txt 显示文件 example.txt 的后50行内容并在文件内容增加后,自动显示新增的文件内容。
     注意:
     最后一条命令非常有用,尤其在监控日志文件时,可以在屏幕上一直显示新增的日志信息。

     tail详解:
     -b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。 
     -c Number 从 Number 变量表示的字节位置开始读取指定文件。 
     -f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),
     那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续
     从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,
     并且标准输入是管道,则会忽略 -f 标志。tail -f 命令可用于监视另一个进程正在写入的文件的增长。 
     -k Number 从 Number 变量表示的 1KB 块位置开始读取指定文件。 
     -m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。 
      -n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)表示,并通过行号 Number 进行位移。 
       -r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。如果文件大于 20,480 字节,那么-r标志只显示最后的 20,480 字节。 -r 标志只有
   与 -n 标志一起时才有效。否则,就会将其忽略。

posted @ 2012-12-05 13:59 abin 阅读(6427) | 评论 (0)编辑 收藏

如何快速处理十万条数据到数据库
posted @ 2012-12-05 00:54 abin 阅读(525) | 评论 (0)编辑 收藏

create table abin6(id integer,
name nvarchar2(100),
score integer,
constraint pk_abin6 primary key(id));

create table abin7(id integer,
address nvarchar2(100),
sid integer,
constraint pk_abin7 primary key(id),
constraint fk_abin7 foreign key (sid) references abin6(id)
);



select * from abin6 t left join abin7 s on t.id=s.sid and t.id=1;
select * from abin6 t left join abin7 s on t.id=s.sid where t.id=1;
select * from abin6 t,abin7 s where t.id=s.sid(+) ;
select * from abin6 t,abin7 s where t.id(+)=s.sid;
select * from abin6 t,abin7 s where s.sid(+)=t.id;
select * from abin6 t,abin7 s where s.sid=t.id(+);
select * from abin6 t inner join abin7 s on t.id=s.sid;
select * from abin6 t union select * from abin7 s where exists (select * from abin6 k where s.sid=k.id and k.id
=1);
select * from abin6 t full join abin7 s on t.id=s.sid;
select * from abin7 s full join abin6 t on s.sid=t.id;
select * from abin6 natural join abin7;
select * from abin6 t cross join abin7;

以下两句是等价查询:
select * from abin6 t where id=1 or id=2;
select * from abin6 t where t.id=1 union all select * from abin6 s where s.id=2;


一。查找重复记录
1。查找全部重复记录
select * from abin4 s where s.name in (select t.name from abin4 t
group by t.name having count(t.name)>1);
select * from abin4 s where exists (select * from abin4 t where t.name=s.name
group by t.name  having count(t.name)>1 );

2。过滤重复记录(只显示一条)
select * from abin4 s where s.id in (select max(id) from abin4 t group by t.name );
二。删除重复记录
1。删除全部重复记录(慎用)
Delete 表 Where 重复字段 In (Select 重复字段 From 表 Group By 重复字段 Having Count(*)>1)
2。保留一条(这个应该是大多数人所需要的 ^_^)
Delete HZT Where ID Not In (Select Max(ID) From HZT Group By Title)
注:此处保留ID最大一条记录




http://blog.csdn.net/csskysea/article/details/6987760
posted @ 2012-12-05 00:33 abin 阅读(475) | 评论 (0)编辑 收藏

UNION 指令的目的是将两个 SQL 语句的结果合并起来,可以查看你要的查询结果.

例如:

SELECT Date FROM Store_Information
UNION
SELECT Date FROM Internet_Sales

注意:union用法中,两个select语句的字段类型匹配,而且字段个数要相同,如上面的例子,在实际的软件开发过程,会遇到更复杂的情况,具体请看下面的例子

select  '1' as type,FL_ID,FL_CODE,FL_CNAME,FLDA.FL_PARENTID from FLDA
WHERE ZT_ID=2006030002
union 
select  '2' as type,XM_ID,XM_CODE ,XM_CNAME ,FL_ID from XMDA
where exists (select * from (select  FL_ID from FLDA WHERE ZT_ID=2006030002 ) a where XMDA.fl_id=a.fl_id)
order by type,FL_PARENTID ,FL_ID

这个句子的意思是将两个sql语句union查询出来,查询的条件就是看XMDA表中的FL_ID是否和主表FLDA里的FL_ID值相匹配,(也就是存在).

UNION在进行表链接后会筛选掉重复的记录,所以在表链接后会对所产生的结果集进行排序运算,删除重复的记录再返回结果。

在查询中会遇到 UNION ALL,它的用法和union一样,只不过union含有distinct的功能,它会把两张表了重复的记录去掉,而union all不会,所以从效率上,union all 会高一点,但在实际中用到的并不是很多.

表头会用第一个连接块的字段。。。。。。。。。。

而UNION ALL只是简单的将两个结果合并后就返回。这样,如果返回的两个结果集中有重复的数据,那么返回的结果集就会包含重复的数据了。

  从效率上说,UNION ALL 要比UNION快很多,所以,如果可以确认合并的两个结果集中不包含重复的数据的话,那么就使用UNION ALL,如下:

尽量使用union all,因为union需要进行排序,去除重复记录,效率低

posted @ 2012-12-04 23:26 abin 阅读(379) | 评论 (0)编辑 收藏

仅列出标题
共50页: First 上一页 19 20 21 22 23 24 25 26 27 下一页 Last