今天的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、因为一次性修改的数据太多,而导致回滚段、临
相关问答:
服务器后台的数据库是oracle,在今天系统登录的时候报“登录不了数据库,IO异常”,结果是全公司都登不上去,我重启了一下服务器才好了,我想可能是用户并发量太大的缘故,不知道各位大虾认同不?有什么解决办法没? ......
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 ......