您的位置:首页 > 数据库 > Oracle

Oracle数据库sql语句收藏

2010-12-02 13:46 316 查看
备份删除数据
insert into lzcard_temp
(colum1,colum2,colum3)
select colum1,colum2,colum3
-- delete
from lzcard t
where t.stateflag='1' and t.makedate < to_date('2010-08-31','yyyy-MM-dd');
根据普通列查询(不是主键,没有索引)保存150W条数据需要到另一张表需要90秒的时间。
但删除这150W条数据需要将近三分钟。

高效分页sql
@Override
public List getPagnationList(int max, int whichpage,String name,String state) {
int maxind = whichpage*max;
int minind = maxind-max+1;
List list=new ArrayList();
try {
int index = (whichpage - 1) * max;
String sql="select t.*,rownum rn from users t where 1=1 ";
String sqlCount="select count(*) from users t where 1=1 ";
if(name!=null && !"".equals(name)){
sql+=" and name like '%"+name+"%'";
sqlCount+=" and name like '%"+name+"%'";
}
if(state!=null && !"".equals(state)){
sql+=" and status='"+state+"'";
sqlCount+=" and status='"+state+"'";

}
sql+= " and rownum <= "+maxind+" ";
sql="SELECT * FROM ("+sql+") a where rn>="+minind;
Query query = entityManager.createNativeQuery(sql);
Query count = entityManager.createNativeQuery(sqlCount);
list.add(query.getResultList());
list.add(count.getSingleResult());
entityManager.clear();// 分离内存中受EntityManager管理的实体bean,让VM进行垃圾回收
return list;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: