用存储过程实现表与表之间的对拷,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;
如果有更好的办法可以贴出来。大家一起分享分享!
分享到:
相关推荐
本文将以具体的实例——报单表`USER_ORDER`为例,详细介绍如何实现Oracle表的自动按月分区,并创建相应的本地索引。 #### 二、准备工作 在开始分区之前,需要先做一些必要的准备工作,确保数据的安全性以及后续操作...
通过`DBMS_REDEFINITION.COPY_TABLE_DEPENDENTS`复制原表`EMP`的所有依赖对象,如索引、触发器、权限等,到新表`EMP_1`。 6. **检查错误**: 查询`DBA_REDEFINITION_ERRORS`视图,确保没有任何错误影响重定义过程...
在Oracle数据库管理中,表空间传输技术(Tablespace Transport)是一种高效的手段,用于在不同的数据库之间快速迁移数据。相较于传统的数据导出导入方法(例如使用`EXP`/`IMP`工具),表空间传输能够直接移动表空间...
这包括相同的表空间、用户、索引等。可以通过导出 DDL 和 DML,然后在备用数据库上导入来实现。 3. **初始化备库**: 使用 RMAN (Recovery Manager) 初始化备用数据库。RMAN 是 Oracle 提供的用于备份、恢复和维护...
首先,关于Oracle数据库对象管理,主要包括创建和修改表结构、管理索引、维护表分区、创建和管理视图及序列等操作。创建表(CREATE TABLE)是数据库管理中最基础的操作,涉及到数据类型、存储参数和数据块管理等特性...
* CREATETEMPORARY 过程:创建一个临时的 BLOB 或 CLOB 和其对应的索引在用户的默认临时表空间中。 * ERASE 过程:擦除 LOB 的全部或部分内容。 * FILECLOSE 过程:关闭文件。 * FILECLOSEALL 过程:关闭所有之前...
### Oracle基本建表语句知识点总结 #### 一、创建用户 ...这些操作不仅适用于创建和管理表结构,还涉及到了用户管理、序列生成、数据插入与更新等多个方面,为Oracle数据库的学习和实践提供了坚实的基础。
- 建议:当更新的数据量接近整个表时,应考虑采用全表扫描而非依赖索引。 6. **并行处理** - 如果服务器具备多CPU配置,可以利用并行处理(Parallel Processing)来提高操作效率。并行处理允许同时在多个处理器...
- **永久表空间**:用于存储数据库中的持久性数据,如表、索引等。 - **临时表空间**:主要用于排序操作、临时表和中间结果集等,当会话结束时,其中的数据会被自动清除。 表空间的管理和维护对于确保数据库的高效...
Oracle Partition 是一种数据库优化技术,它将大型表和索引分解为更小、更易管理的部分,称为分区。这一特性旨在解决支持非常大的表和索引时所面临的挑战。通过分区,可以对数据库对象进行有效的管理和维护,同时...
例如,为了确保一致性,可能需要在数据库的归档模式下进行备份,或者使用RMAN的`BACKUP AS COPY`命令创建一致性快照。同时,理解闪回技术(Flashback Database、Flashback Transaction)也是恢复策略的重要部分,它...
- 学习索引的创建与优化,理解B树索引和位图索引的区别。 - 探索序列(Sequences)的用途,如何生成自动递增的数字。 5. **安全性与权限**: - 管理用户和角色,理解权限(Privileges)和角色(Roles)的分配。 ...
Oracle中的基本创建表语句如下: ```sql CREATE TABLE 表名 ( 字段名1 字段类型(长度) 是否为空, 字段名2 字段类型 是否为空 ); ``` 例如,创建一个学生表`T_STU`: ```sql CREATE TABLE T_STU ( STU_ID CHAR...
§5.2.3 创建索引的分区 164 §5.2.4 维护表分区和索引分区 167 §5.3 簇与分区有关的数据字典 169 §5.3.1 分区、簇数据字典列表 169 §5.3.2 基本的分区、簇信息查询 169 第六章 使用SQL 进行数据操作 170 §6.1 ...
- **配置索引选项**:如果也使用Web服务器作为文档内容服务器,则还需要配置索引选项。例如: ``` IndexOptions NameWidth=* IndexOptions FoldersFirst AddIcon /icons/text.gif .txt .log ``` - **检查oracle...
查看放在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 中,创建表需要使用 CREATE TABLE 语句,例如: ```sql CREATE TABLE classes ( id NUMBER(9) NOT NULL PRIMARY KEY, classname VARCHAR2(40) NOT NULL ); ``` 这条语句创建了一个名为 classes 的表,...
10. **批量拷贝与常规插入**:Oracle提供的COPY命令和常规的INSERT INTO...SELECT语句是批量数据迁移的常见方式,通过设置ARRAYSIZE和COPYCOMMIT,可以控制批量处理的大小,提高效率。 11. **CTAS(CREATE TABLE AS...
`:为表的某个字段创建索引。 - `DROP INDEX 索引名;`:删除已有的索引。 11. **视图操作**: - `CREATE VIEW 视图名 AS SELECT ...;`:创建视图。 - `ALTER VIEW 视图名 AS SELECT ...;`:修改已存在的视图。 ...
以上是基于给定内容中涉及到的基本Oracle SQL语句操作知识点的详细解释,涵盖了从创建用户到表操作、字段操作以及索引和约束管理等多个方面。这些知识点对于Oracle数据库的日常管理和维护非常实用。