今天的oracle面试题 - Oracle / 基础和管理
1、有一张表A,属性有Id ,name ,age这张表的数据量达到100万,要把所有的age都更新为age+1,请问怎么实现最高效?
高效?坐等大侠 我就会这样update table_name set num=num+1 ; 你可以回答,表设计不好,age会随着时间变化而变化,改用birthday,用date类型吧引用 你可以回答,表设计不好,age会随着时间变化而变化,改用birthday,用date类型吧 这个是面试题,你就不要考虑设计问题了,就吧age当成个普通的int类型的列,把他全部加1。 100万也应该很快吧 update table_name set num=num+1 如果有索引,先把索引删除后 再update 最后把索引重新创建一下 因为索引对update影响很大引用 如果有索引,先把索引删除后 再update 最后把索引重新创建一下 因为索引对update影响很大 同意这种做法... 重建索引很快... SQL code: --在允许的情况下可以 1、create table newA as select id,name,age+1 age from A; 2、drop table A; 3、rename newA to A; 有没有人用批量更新操作呀 为什么这样很低效? update table_name set num=num+1 这也有搞头? 批量更新呗 设置自动提交行数,会快很多 set autocommit 1000; update table_name set age=age+1; dml 操作的缺点: 1、因为一次性修改的数据太多,而导致回滚段、临
相关问答:
假设table01 中有 以下资料 emp_no emp_name ------- ------------ 0001 TOM 0002 JOHN 0003 MARY 常用电话 而我们要得到以下的OUTPUT (或是各种其他的output) 0001,TOM 0002,JOHN
......
java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=186646784)(ERR=12505)(ERROR_STACK=(ERROR=(CODE=12505)(EMFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBErro ......
我的处理是这样的: 我有一个很大的数据集合,处于性能方面的考虑需要使用临时表过渡,并且使用分页的方式向临时表中插入数据,数据使用完毕后,删除临时表的数据。 出现的现象:当Oracle重新启动后,第一页插入的 ......
oracle 通过BDlink 连接到一台MS SQL,查询都可以,但是不知道如何在oracle通过DBLink调用MS SQL的存储过程,求解~谢谢~ 引用 oracle 通过BDlink 连接到一台MS SQL,查询都可以,但是不知道如何在oracle通过DBLink调用M ......
SQL code: CREATE OR REPLACE PROCEDURE usp_refreshTopN IS BEGIN --文档 INSERT INTO topnresource(resourceId,title,type,cover,brief,properUser,tag,clickAmount,createDate,topNCreateDate,organizat ......