`

Oracle 表之间Copy 创建索引

 
阅读更多
用存储过程实现表与表之间的对拷,1000万的数据需花费20分钟,之所以花费如此多的时间源自创建索引,如果不需要索引的话可以手动删除。

源码:

CREATE OR REPLACE PROCEDURE P_EXPORTDATA(TAB1 IN VARCHAR2,
                                         TAB2 IN VARCHAR2) Authid Current_User IS
  D_SQL     varchar2(100);
  TABLE_SQL VARCHAR2(2000);
  INDEX_1   VARCHAR2(2000);
  INDEX_2   VARCHAR2(2000);
BEGIN
  D_SQl     := 'drop table ' || TAB1;
  TABLE_SQL := 'create table ' || TAB1 || ' as select * from ' || TAB2;
  INDEX_1   := 'create index idx_1 on ' || TAB1 || '(busiid asc,
                                          latest asc,
                                          remarks asc,
                                          status asc)';
  INDEX_2   := 'create index idx_2 on ' || TAB1 || '(busiid asc,
                                          mobilenbr asc,
                                          latest asc,
                                          status asc,
                                          succnum asc,
                                          failnum asc,
                                          remarks asc)';
  EXECUTE IMMEDIATE D_SQL;
  EXECUTE IMMEDIATE TABLE_SQL;
  EXECUTE IMMEDIATE INDEX_1;
  EXECUTE IMMEDIATE INDEX_2;
END P_EXPORTDATA;


如果有更好的办法可以贴出来。大家一起分享分享!
分享到:
评论

相关推荐

    ORACLE表自动按月分区步骤

    本文将以具体的实例——报单表`USER_ORDER`为例,详细介绍如何实现Oracle表的自动按月分区,并创建相应的本地索引。 #### 二、准备工作 在开始分区之前,需要先做一些必要的准备工作,确保数据的安全性以及后续操作...

    oracle普通表转化为分区表的方法

    通过`DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS`复制原表`EMP`的所有依赖对象,如索引、触发器、权限等,到新表`EMP_1`。 6. **检查错误**: 查询`DBA_REDEFINITION_ERRORS`视图,确保没有任何错误影响重定义过程...

    ORACLE数据库表空间传输方式.

    在Oracle数据库管理中,表空间传输技术(Tablespace Transport)是一种高效的手段,用于在不同的数据库之间快速迁移数据。相较于传统的数据导出导入方法(例如使用`EXP`/`IMP`工具),表空间传输能够直接移动表空间...

    Oracle 11gR2 使用copy 数据文件搭建物理 Data Guard

    这包括相同的表空间、用户、索引等。可以通过导出 DDL 和 DML,然后在备用数据库上导入来实现。 3. **初始化备库**: 使用 RMAN (Recovery Manager) 初始化备用数据库。RMAN 是 Oracle 提供的用于备份、恢复和维护...

    Oracle数据库对象管理及备份与恢复.pdf

    首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...

    Oracle如何对CLOB行字段来执行全文检索

    * CREATETEMPORARY 过程:创建一个临时的 BLOB 或 CLOB 和其对应的索引在用户的默认临时表空间中。 * ERASE 过程:擦除 LOB 的全部或部分内容。 * FILECLOSE 过程:关闭文件。 * FILECLOSEALL 过程:关闭所有之前...

    Oracle基本建表语句

    ### Oracle基本建表语句知识点总结 #### 一、创建用户 ...这些操作不仅适用于创建和管理表结构,还涉及到了用户管理、序列生成、数据插入与更新等多个方面,为Oracle数据库的学习和实践提供了坚实的基础。

    Oracle 大数据量操作优化

    - 建议:当更新的数据量接近整个表时,应考虑采用全表扫描而非依赖索引。 6. **并行处理** - 如果服务器具备多CPU配置,可以利用并行处理(Parallel Processing)来提高操作效率。并行处理允许同时在多个处理器...

    oracle书籍库总结

    - **永久表空间**:用于存储数据库中的持久性数据,如表、索引等。 - **临时表空间**:主要用于排序操作、临时表和中间结果集等,当会话结束时,其中的数据会被自动清除。 表空间的管理和维护对于确保数据库的高效...

    oracle partition 深入讨论

    Oracle Partition 是一种数据库优化技术,它将大型表和索引分解为更小、更易管理的部分,称为分区。这一特性旨在解决支持非常大的表和索引时所面临的挑战。通过分区,可以对数据库对象进行有效的管理和维护,同时...

    oracle认证知识点

    例如,为了确保一致性,可能需要在数据库的归档模式下进行备份,或者使用RMAN的`BACKUP AS COPY`命令创建一致性快照。同时,理解闪回技术(Flashback Database、Flashback Transaction)也是恢复策略的重要部分,它...

    Oracle入门很简单源代码集

    - 学习索引的创建与优化,理解B树索引和位图索引的区别。 - 探索序列(Sequences)的用途,如何生成自动递增的数字。 5. **安全性与权限**: - 管理用户和角色,理解权限(Privileges)和角色(Roles)的分配。 ...

    Oracle_基本建表语句.doc

    Oracle中的基本创建表语句如下: ```sql CREATE TABLE 表名 ( 字段名1 字段类型(长度) 是否为空, 字段名2 字段类型 是否为空 ); ``` 例如,创建一个学生表`T_STU`: ```sql CREATE TABLE T_STU ( STU_ID CHAR...

    Oracle8i_9i数据库基础

    §5.2.3 创建索引的分区 164 §5.2.4 维护表分区和索引分区 167 §5.3 簇与分区有关的数据字典 169 §5.3.1 分区、簇数据字典列表 169 §5.3.2 基本的分区、簇信息查询 169 第六章 使用SQL 进行数据操作 170 §6.1 ...

    oracle的sqlplus配置

    - **配置索引选项**:如果也使用Web服务器作为文档内容服务器,则还需要配置索引选项。例如: ``` IndexOptions NameWidth=* IndexOptions FoldersFirst AddIcon /icons/text.gif .txt .log ``` - **检查oracle...

    最全的oracle常用命令大全.txt

    查看放在ORACLE的内存区里的表 SQL>select table_name,cache from user_tables where instr(cache,'Y')>0; 3、索引 查看索引个数和类别 SQL>select index_name,index_type,table_name from user_indexes ...

    Oracle基本语句

    在 Oracle 中,创建表需要使用 CREATE TABLE 语句,例如: ```sql CREATE TABLE classes ( id NUMBER(9) NOT NULL PRIMARY KEY, classname VARCHAR2(40) NOT NULL ); ``` 这条语句创建了一个名为 classes 的表,...

    Oracle 大数据量操作优化.pdf

    10. **批量拷贝与常规插入**:Oracle提供的COPY命令和常规的INSERT INTO...SELECT语句是批量数据迁移的常见方式,通过设置ARRAYSIZE和COPYCOMMIT,可以控制批量处理的大小,提高效率。 11. **CTAS(CREATE TABLE AS...

    oracle里常用的命令大全,及oracle使用1000问

    `:为表的某个字段创建索引。 - `DROP INDEX 索引名;`:删除已有的索引。 11. **视图操作**: - `CREATE VIEW 视图名 AS SELECT ...;`:创建视图。 - `ALTER VIEW 视图名 AS SELECT ...;`:修改已存在的视图。 ...

    Oracle 基本建表语句集

    以上是基于给定内容中涉及到的基本Oracle SQL语句操作知识点的详细解释,涵盖了从创建用户到表操作、字段操作以及索引和约束管理等多个方面。这些知识点对于Oracle数据库的日常管理和维护非常实用。

Global site tag (gtag.js) - Google Analytics